import fit2cloudKoLocale from 'fit2cloud-ui-plus/src/locale/lang/en';

let xpackKoLocale = {};
const xpackModules = import.meta.glob('../../xpack/lang/ko.ts', { eager: true });
if (xpackModules['../../xpack/lang/ko.ts']) {
    xpackKoLocale = xpackModules['../../xpack/lang/ko.ts']['default'] || {};
}

const message = {
    commons: {
        true: '참',
        false: '거짓',
        colon: ': ',
        example: '예를 들어, ',
        fit2cloud: 'FIT2CLOUD',
        lingxia: 'Lingxia',
        button: {
            run: '실행',
            create: '생성',
            add: '추가',
            save: '저장',
            set: '설정 수정',
            sync: '동기화',
            delete: '삭제',
            edit: '편집',
            enable: '활성화',
            disable: '비활성화',
            confirm: '확인',
            cancel: '취소',
            reset: '재설정',
            restart: '재시작',
            conn: '연결',
            disconnect: '연결 해제',
            clean: '정리',
            login: '로그인',
            close: '닫기',
            off: '꺼짐',
            stop: '중지',
            start: '시작',
            view: '보기',
            watch: '감시',
            handle: '트리거',
            expand: '확장',
            collapse: '축소',
            log: '로그',
            back: '뒤로',
            backup: '백업',
            recover: '복구',
            retry: '재시도',
            upload: '업로드',
            download: '다운로드',
            init: '초기화',
            verify: '검증',
            saveAndEnable: '저장 및 활성화',
            import: '가져오기',
            search: '검색',
            refresh: '새로고침',
            get: '가져오기',
            upgrade: '업그레이드',
            ignore: '업그레이드 무시',
            copy: '복사',
            random: '무작위',
            uninstall: '제거',
            fullscreen: '전체 화면',
            quitFullscreen: '전체 화면 종료',
            update: '수정',
            showAll: '모두 보기',
            hideSome: '일부 숨기기',
            agree: '동의',
            notAgree: '동의하지 않음',
            preview: '미리 보기',
            open: '열기',
            notSave: '저장하지 않음',
            createNewFolder: '새 폴더 생성',
            createNewFile: '새 파일 생성',
            helpDoc: '도움말 문서',
            unbind: '연결 해제',
            cover: '덮어쓰기',
            skip: '건너뛰기',
        },
        search: {
            timeStart: '시작 시간',
            timeEnd: '종료 시간',
            timeRange: '부터',
            dateStart: '시작 날짜',
            dateEnd: '종료 날짜',
        },
        table: {
            all: '전체',
            total: '총 {0}',
            name: '이름',
            type: '유형',
            status: '상태',
            statusSuccess: '성공',
            statusFailed: '실패',
            statusWaiting: '대기 중...',
            records: '기록',
            group: '그룹',
            createdAt: '생성 시간',
            publishedAt: '게시 시간',
            date: '날짜',
            updatedAt: '업데이트 시간',
            operate: '작업',
            message: '메시지',
            description: '설명',
            interval: '간격',
            user: '소유자',
            title: '제목',
            port: '포트',
            forward: '포워드',
            protocol: '프로토콜',
            tableSetting: '테이블 설정',
            refreshRate: '새로 고침 속도',
            refreshRateUnit: '새로 고침 안 함 | {n} 초/회 | {n} 초/회',
            selectColumn: '열 선택',
            serialNumber: '일련 번호',
        },
        loadingText: {
            Upgrading: '시스템 업그레이드 중입니다. 잠시만 기다려 주십시오...',
            Restarting: '시스템 재시작 중입니다. 잠시만 기다려 주십시오...',
            Recovering: '스냅샷에서 복구 중입니다. 잠시만 기다려 주십시오...',
            Rollbacking: '스냅샷에서 롤백 중입니다. 잠시만 기다려 주십시오...',
        },
        msg: {
            noneData: '데이터가 없습니다',
            delete: `이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?`,
            clean: `이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?`,
            deleteTitle: '삭제',
            deleteSuccess: '삭제 완료',
            loginSuccess: '로그인 성공',
            operationSuccess: '작업 완료',
            copySuccess: '복사 완료',
            notSupportOperation: `이 작업은 지원되지 않습니다`,
            requestTimeout: '요청이 시간 초과되었습니다. 나중에 다시 시도해 주십시오',
            infoTitle: '안내',
            notRecords: '현재 작업에 대한 실행 기록이 생성되지 않았습니다',
            sureLogOut: '로그아웃하시겠습니까?',
            createSuccess: '생성 완료',
            updateSuccess: '업데이트 완료',
            uploadSuccess: '업로드 성공',
            operate: '작업',
            operateConfirm: '작업을 확인하려면 수동으로 입력하십시오: ',
            inputOrSelect: '선택하거나 입력해 주십시오',
            copyFailed: '복사 실패',
            operatorHelper: `"{0}"에 대해 "{1}" 작업이 수행되며 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?`,
            notFound: '죄송합니다. 요청하신 페이지를 찾을 수 없습니다.',
            unSupportType: `현재 파일 형식은 지원되지 않습니다.`,
            unSupportSize: '업로드된 파일이 {0}M을 초과했습니다. 확인해 주십시오!',
            fileExist: `현재 폴더에 이미 동일한 파일이 존재합니다. 중복 업로드는 지원되지 않습니다.`,
            fileNameErr: '파일 이름은 1~256 자 사이의 영어, 중국어, 숫자, 또는 점(.-_)만 포함해야 합니다.',
            confirmNoNull: `{0} 값이 비어 있지 않은지 확인하십시오.`,
            errPort: '포트 정보가 올바르지 않습니다. 확인해 주십시오!',
            remove: '제거',
            backupHelper: '현재 작업은 {0}을(를) 백업합니다. 계속하시겠습니까?',
            recoverHelper: '{0} 파일에서 복원 중입니다. 이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?',
            refreshSuccess: '새로 고침 완료',
            rootInfoErr: '이미 루트 디렉토리입니다',
            resetSuccess: '초기화 완료',
            creatingInfo: '생성 중입니다. 이 작업이 필요하지 않습니다',
        },
        login: {
            username: '사용자 이름',
            password: '비밀번호',
            welcome: '다시 오신 것을 환영합니다. 사용자 이름과 비밀번호를 입력하여 로그인하세요!',
            errorAuthInfo: '입력한 사용자 이름 또는 비밀번호가 잘못되었습니다. 다시 입력해주세요!',
            errorMfaInfo: '인증 정보가 잘못되었습니다. 다시 시도해주세요!',
            captchaHelper: '캡챠',
            errorCaptcha: '캡챠 코드 오류!',
            notSafe: '접근이 거부되었습니다',
            safeEntrance1: '현재 환경에서 보안 로그인이 활성화되었습니다',
            safeEntrance2: 'SSH 터미널에서 다음 명령어를 입력하여 패널 진입 경로를 확인하세요: 1pctl user-info',
            errIP1: '현재 환경에서 승인된 IP 주소 접근이 활성화되었습니다',
            errDomain1: '현재 환경에서 도메인 이름 바인딩이 활성화되었습니다',
            errHelper: '바인딩 정보를 재설정하려면 SSH 터미널에서 다음 명령어를 실행하세요:',
            codeInput: 'MFA 인증기의 6자리 인증 코드를 입력하세요',
            mfaTitle: 'MFA 인증',
            mfaCode: 'MFA 인증 코드',
            title: 'Linux 서버 관리 패널',
            licenseHelper:
                '&laquo; <a href="https://www.fit2cloud.com/legal/licenses.html" target="_blank">커뮤니티 라이선스 계약</a> &raquo;에 동의합니다',
            errorAgree: '커뮤니티 소프트웨어 라이선스에 동의하려면 클릭하세요',
            logout: '로그아웃',
            agreeTitle: '동의',
            agreeContent:
                '귀하의 합법적인 권리와 이익을 보다 잘 보호하기 위해, 다음 &laquo; <a href = "https://www.fit2cloud.com/legal/licenses.html" target = "_blank" >커뮤니티 라이선스 계약</a> &raquo;을 읽고 동의해주세요.',
        },
        rule: {
            username: '사용자 이름을 입력하세요',
            password: '비밀번호를 입력하세요',
            rePassword: '확인 비밀번호가 비밀번호와 일치하지 않습니다.',
            requiredInput: '이 필드는 필수 항목입니다.',
            requiredSelect: '목록에서 항목을 선택하세요',
            illegalChar: '현재 & ; $ \' ` ( ) " > < | 문자 주입은 지원되지 않습니다',
            illegalInput: '이 필드에는 유효하지 않은 문자가 포함될 수 없습니다.',
            commonName:
                '이 필드는 특수 문자로 시작할 수 없으며, 영어, 한자, 숫자, ".", "-", "_" 문자로 구성되어야 하며 길이는 1-128자여야 합니다.',
            userName: '이 필드는 영어, 한자, 숫자 및 "_" 문자로 구성되어야 하며 길이는 3-30 자여야 합니다.',
            simpleName:
                '이 필드는 "_"로 시작할 수 없으며, 영어, 숫자 및 "_" 문자로 구성되어야 하며 길이는 3-30 자여야 합니다.',
            simplePassword:
                '이 필드는 "_"로 시작할 수 없으며, 영어, 숫자 및 "_" 문자로 구성되어야 하며 길이는 1-30 자여야 합니다.',
            dbName: '이 필드는 "_"로 시작할 수 없으며, 영어, 숫자 및 "_" 문자로 구성되어야 하며 길이는 1-64 자여야 합니다.',
            imageName:
                '이 필드는 영어, 숫자, ":", "@", "/", ".", "-", "_" 문자로 구성되어야 하며 길이는 1-256 자여야 합니다.',
            composeName: '특수 문자로 시작할 수 없으며, 소문자, 숫자, "-", "_"를 지원하며 길이는 1-256 자여야 합니다.',
            volumeName: '이 필드는 영어, 숫자, ".", "-", "_" 문자로 구성되어야 하며 길이는 2-30 자여야 합니다.',
            supervisorName:
                '이 필드는 특수 문자로 시작할 수 없으며, 영어, 숫자, "-", "_" 문자로 구성되어야 하며 길이는 1-128 자여야 합니다.',
            complexityPassword:
                '이 필드는 영어와 숫자로 구성되어야 하며 길이는 8-30 자이고 최소 두 개의 특수 문자가 포함되어야 합니다.',
            commonPassword: '이 필드 길이는 6 자 이상이어야 합니다.',
            linuxName: '이 필드 길이는 1-128 자 사이여야 하며, 다음 특수 문자를 포함할 수 없습니다: "{0}".',
            email: '이 필드는 유효한 이메일 주소여야 합니다.',
            number: '이 필드는 숫자여야 합니다.',
            integer: '이 필드는 양의 정수여야 합니다.',
            ip: '이 필드는 유효한 IP 주소여야 합니다.',
            host: '이 필드는 유효한 IP 주소 또는 도메인 이름이어야 합니다.',
            hostHelper: 'IP 주소 또는 도메인 이름 입력을 지원합니다',
            port: '이 필드는 유효한 포트 번호여야 합니다.',
            selectHelper: '올바른 {0} 파일을 선택하세요',
            domain: '이 필드는 다음 형식이어야 합니다: example.com 또는 example.com:8080.',
            databaseName: '이 필드는 영어, 숫자 및 "_" 문자로 구성되어야 하며 길이는 1-30 자여야 합니다.',
            ipErr: '이 필드는 유효한 IP 주소여야 합니다.',
            numberRange: '이 필드는 {0}에서 {1} 사이의 숫자여야 합니다.',
            paramName: '이 필드는 영어, 숫자, ".", "-", "_" 문자로 구성되어야 하며 길이는 2-30 자여야 합니다.',
            paramComplexity:
                '이 필드는 특수 문자로 시작하거나 끝날 수 없으며, 영어, 숫자, "{0}" 문자로 구성되어야 하며 길이는 6-128 자여야 합니다.',
            paramUrlAndPort: '이 필드는 "http(s)://(도메인 이름/IP):(포트)" 형식이어야 합니다.',
            nginxDoc: '이 필드는 영어, 숫자 및 _ "." 문자로 구성되어야 합니다.',
            appName:
                '소문자, 숫자, "-", "_"를 지원하며 길이는 2-30 자이고, "-" 또는 "_"로 시작하거나 끝날 수 없습니다.',
            containerName:
                '영어, 숫자, "-", "_", "."를 지원하며, "-", "_", "."로 시작할 수 없고 길이는 2-128 자여야 합니다.',
            mirror: '미러 가속 주소는 http(s)://로 시작해야 하며, 대소문자 영어, 숫자, ".", "/", "-"를 지원하고 공백을 포함할 수 없습니다.',
            disableFunction: '영어 문자, 밑줄 및 ,만 지원합니다',
            leechExts: '영어 문자, 숫자 및 ,만 지원합니다',
            paramSimple: '소문자와 숫자를 지원하며 길이는 1-128 자여야 합니다',
            filePermission: '파일 권한 오류',
            formatErr: '형식 오류입니다. 확인 후 다시 시도하세요',
            phpExtension: '소문자 영어와 숫자, "_"만 지원합니다',
            paramHttp: 'http:// 또는 https:// 로 시작해야 합니다',
            phone: '전화번호 형식이 올바르지 않습니다',
        },
        res: {
            paramError: '요청이 실패했습니다. 나중에 다시 시도하세요!',
            forbidden: '현재 사용자는 권한이 없습니다',
            serverError: '서비스 예외',
            notFound: '리소스가 존재하지 않습니다',
            commonError: '요청이 실패했습니다',
        },
        service: {
            serviceNotStarted: `{0} 서비스가 시작되지 않았습니다.`,
        },
        status: {
            running: '실행 중',
            done: '완료',
            scanFailed: '불완전',
            success: '성공',
            waiting: '대기 중',
            waiting1: '대기 중',
            failed: '실패',
            stopped: '중지됨',
            error: '오류',
            created: '생성됨',
            restarting: '재시작 중',
            uploading: '업로드 중',
            unhealthy: '비정상',
            removing: '제거 중',
            paused: '일시 중지',
            exited: '종료됨',
            dead: '중단됨',
            installing: '설치 중',
            enabled: '활성화됨',
            disabled: '비활성화됨',
            normal: '정상',
            building: '빌드 중',
            downloaderr: '다운로드 오류',
            upgrading: '업그레이드 중',
            upgradeerr: '업그레이드 오류',
            pullerr: '이미지 가져오기 오류',
            rebuilding: '재빌드 중',
            deny: '거부됨',
            accept: '수락됨',
            used: '사용 중',
            unUsed: '사용 안 함',
            starting: '시작 중',
            recreating: '재생성 중',
            creating: '생성 중',
            systemrestart: '중단됨',
            init: '애플리케이션 대기 중',
            ready: '정상',
            applying: '적용 중',
            applyerror: '실패',
            syncerr: '오류',
            uperr: '오류',
        },
        units: {
            second: '초 | 초 | 초',
            minute: '분 | 분 | 분',
            hour: '시간 | 시간 | 시간',
            day: '일 | 일 | 일',
            week: '주 | 주 | 주',
            month: '월 | 월 | 월',
            year: '년 | 년 | 년',
            time: '시간',
            core: '코어 | 코어 | 코어',
            millisecond: '밀리초 | 밀리초',
            secondUnit: '초',
            minuteUnit: '분',
            hourUnit: '시간',
            dayUnit: '일',
            weekUnit: '주',
            monthUnit: '월',
            yearUnit: '년',
            millisecondUnit: 'ms',
        },
        operate: {
            down: '중지',
            up: '시작',
            restart: '재시작',
            install: '설치',
            uninstall: '제거',
            update: '업데이트',
        },
    },
    menu: {
        home: '개요',
        apps: '앱 스토어',
        website: '웹사이트 | 웹사이트들',
        project: '프로젝트 | 프로젝트들',
        config: '구성 | 구성들',
        ssh: 'SSH 설정',
        firewall: '방화벽',
        ssl: '인증서 | 인증서들',
        database: '데이터베이스 | 데이터베이스들',
        ai_tools: 'AI',
        mcp: 'MCP',
        container: '컨테이너 | 컨테이너들',
        cronjob: '크론 작업 | 크론 작업들',
        host: '호스트 | 호스트들',
        system: '시스템',
        security: '보안',
        files: '파일',
        monitor: '모니터링',
        terminal: '터미널 | 터미널들',
        settings: '설정 | 설정들',
        toolbox: '툴박스',
        logs: '로그 | 로그들',
        runtime: '런타임 | 런타임들',
        processManage: '프로세스 | 프로세스들',
        process: '프로세스 | 프로세스들',
        network: '네트워크 | 네트워크들',
        supervisor: '슈퍼바이저',
        name: '변조 방지',
    },
    home: {
        restart_1panel: '패널 재시작',
        restart_system: '서버 재시작',
        operationSuccess:
            '작업이 성공적으로 완료되었습니다. 시스템이 재부팅 중입니다. 나중에 브라우저를 수동으로 새로 고침하세요!',
        overview: '개요',
        entranceHelper: `보안 입구가 활성화되어 있지 않습니다. "설정 -> 보안"에서 활성화하여 시스템 보안을 강화할 수 있습니다.`,
        appInstalled: '설치된 애플리케이션',
        systemInfo: '시스템 정보',
        hostname: '호스트 이름',
        platformVersion: '운영 체제',
        kernelVersion: '커널',
        kernelArch: '아키텍처',
        network: '네트워크',
        io: '디스크 I/O',
        ip: '로컬 IP',
        proxy: '시스템 프록시',
        baseInfo: '기본 정보',
        totalSend: '총 송신',
        totalRecv: '총 수신',
        rwPerSecond: 'I/O 작업',
        ioDelay: 'I/O 지연 시간',
        uptime: '작동 시간',
        runningTime: '가동 시간',
        mem: '시스템',
        swapMem: '스왑 파티션',

        runSmoothly: '낮은 부하',
        runNormal: '보통 부하',
        runSlowly: '높은 부하',
        runJam: '심한 부하',

        core: '물리적 코어',
        logicCore: '논리 코어',
        loadAverage: '지난 1분의 평균 부하 | 지난 {n} 분의 평균 부하',
        load: '부하',
        mount: '마운트 지점',
        fileSystem: '파일 시스템',
        total: '총량',
        used: '사용 중',
        free: '여유',
        percent: '사용률',
        app: '추천 애플리케이션',
        goInstall: 'Go 설치',

        networkCard: '네트워크 카드',
        disk: '디스크',
    },
    tabs: {
        more: '더 보기',
        hide: '숨기기',
        close: '닫기',
        closeLeft: '왼쪽 닫기',
        closeRight: '오른쪽 닫기',
        closeCurrent: '현재 탭 닫기',
        closeOther: '다른 탭 닫기',
        closeAll: '모두 닫기',
    },
    header: {
        logout: '로그아웃',
    },
    database: {
        all: '모두',
        manage: '관리',
        database: '데이터베이스',
        deleteBackupHelper: '데이터베이스 백업을 동시에 삭제',
        delete: '삭제 작업은 되돌릴 수 없습니다. 삭제하려면 "',
        deleteHelper: '"를 입력하세요.',
        create: '데이터베이스 생성',
        noMysql: '데이터베이스 서비스 (MySQL 또는 MariaDB)',
        noPostgresql: '데이터베이스 서비스 Postgresql',
        goUpgrade: '업그레이드로 이동',
        goInstall: '설치로 이동',
        source: '소스',
        isDelete: '삭제됨',
        permission: '권한',
        permissionForIP: 'IP',
        permissionAll: '모두(%)',
        localhostHelper:
            '컨테이너 배포 시 데이터베이스 권한을 "localhost"로 설정하면 컨테이너 외부에서 접근할 수 없게 됩니다. 신중하게 선택하세요!',
        databaseConnInfo: '연결 정보',
        rootPassword: '루트 비밀번호',
        serviceName: '서비스 이름',
        serviceNameHelper: '같은 네트워크 내 컨테이너 간의 접근.',
        backupList: '백업',
        loadBackup: '불러오기',
        remoteAccess: '원격 접근',
        remoteHelper: '여러 IP 를 쉼표로 구분하여 입력, 예: 172.16.10.111, 172.16.10.112',
        remoteConnHelper:
            'MySQL 의 root 사용자로 원격 접속은 보안 위험을 초래할 수 있습니다. 따라서 이 작업은 신중히 수행해야 합니다.',
        changePassword: '비밀번호',
        changeConnHelper: '이 작업은 현재 데이터베이스 {0}을(를) 수정합니다. 계속하시겠습니까?',
        changePasswordHelper:
            '데이터베이스가 애플리케이션과 연결되어 있습니다. 비밀번호를 변경하면 애플리케이션의 데이터베이스 비밀번호도 변경됩니다. 변경 사항은 애플리케이션이 재시작된 후에 적용됩니다.',
        confChange: '설정',
        confNotFound:
            '설정 파일을 찾을 수 없습니다. 앱 스토어에서 애플리케이션을 최신 버전으로 업그레이드하고 다시 시도해주세요!',
        portHelper: '이 포트는 컨테이너의 노출된 포트입니다. 수정을 별도로 저장하고 컨테이너를 재시작해야 합니다!',
        loadFromRemote: '동기화',
        userBind: '사용자 바인딩',
        pgBindHelper: `이 작업은 새 사용자를 생성하여 대상 데이터베이스에 바인딩하는 데 사용됩니다. 현재 데이터베이스에 이미 존재하는 사용자 선택은 지원되지 않습니다.`,
        pgSuperUser: '슈퍼 사용자',
        loadFromRemoteHelper: '이 작업은 서버의 데이터베이스 정보를 1Panel로 동기화합니다. 계속 진행하시겠습니까?',
        passwordHelper: '불러올 수 없습니다. 수정해주세요.',
        local: '로컬',
        remote: '원격',
        remoteDB: '원격 서버 | 원격 서버들',
        manageRemoteDB: '원격 DB 관리',
        createRemoteDB: '원격 DB 바인딩',
        unBindRemoteDB: '원격 DB 바인딩 해제',
        unBindForce: '강제 바인딩 해제',
        unBindForceHelper: '바인딩 해제 중 발생하는 모든 오류를 무시하고 최종 작업을 성공적으로 완료합니다.',
        unBindRemoteHelper:
            '원격 데이터베이스 바인딩 해제는 바인딩 관계만 제거하며, 원격 데이터베이스 자체는 삭제되지 않습니다.',
        editRemoteDB: '원격 서버 편집',
        localDB: '로컬 데이터베이스',
        address: '데이터베이스 주소',
        version: '데이터베이스 버전',
        userHelper: '루트 사용자 또는 루트 권한을 가진 데이터베이스 사용자가 원격 데이터베이스에 접근할 수 있습니다.',
        pgUserHelper: '슈퍼 사용자 권한을 가진 데이터베이스 사용자.',
        ssl: 'SSL 사용',
        clientKey: '클라이언트 개인 키',
        clientCert: '클라이언트 인증서',
        caCert: 'CA 인증서',
        hasCA: 'CA 인증서 있음',
        skipVerify: '인증서 유효성 검사 무시',

        formatHelper: '현재 데이터베이스 문자셋은 {0} 입니다. 문자셋 불일치로 인해 복구에 실패할 수 있습니다.',
        selectFile: '파일 선택',
        dropHelper: '여기에 업로드한 파일을 드래그 앤 드롭하거나',
        clickHelper: '클릭하여 업로드',
        supportUpType: 'sql, sql.gz, tar.gz 파일만 지원됩니다.',
        zipFormat: 'tar.gz 압축 패키지 구조: test.tar.gz 압축 패키지에는 test.sql이 포함되어야 합니다.',

        currentStatus: '현재 상태',
        baseParam: '기본 파라미터',
        performanceParam: '성능 파라미터',
        runTime: '시작 시간',
        connections: '전체 연결',
        bytesSent: '전송된 바이트',
        bytesReceived: '수신된 바이트',
        queryPerSecond: '초당 쿼리',
        txPerSecond: '초당 전송',
        connInfo: '활성/최대 연결',
        connInfoHelper: '값이 너무 크면 "max_connections" 값을 증가시켜야 합니다.',
        threadCacheHit: '스레드 캐시 적중',
        threadCacheHitHelper: '값이 너무 낮으면 "thread_cache_size" 값을 증가시켜야 합니다.',
        indexHit: '인덱스 적중',
        indexHitHelper: '값이 너무 낮으면 "key_buffer_size" 값을 증가시켜야 합니다.',
        innodbIndexHit: 'Innodb 인덱스 적중률',
        innodbIndexHitHelper: '값이 너무 낮으면 "innodb_buffer_pool_size" 값을 증가시켜야 합니다.',
        cacheHit: '쿼리 캐시 적중',
        cacheHitHelper: '값이 너무 낮으면 "query_cache_size" 값을 증가시켜야 합니다.',
        tmpTableToDB: '디스크로 임시 테이블',
        tmpTableToDBHelper: '값이 너무 크면 "tmp_table_size" 값을 증가시켜야 합니다.',
        openTables: '열린 테이블',
        openTablesHelper: '"table_open_cache" 설정 값이 이 값 이상이어야 합니다.',
        selectFullJoin: '전체 조인 선택',
        selectFullJoinHelper: '값이 0이 아니면 데이터 테이블의 인덱스가 올바른지 확인하십시오.',
        selectRangeCheck: '인덱스 없는 조인 수',
        selectRangeCheckHelper: '값이 0이 아니면 데이터 테이블의 인덱스가 올바른지 확인하십시오.',
        sortMergePasses: '정렬된 병합 횟수',
        sortMergePassesHelper: '값이 너무 크면 "sort_buffer_size" 값을 증가시켜야 합니다.',
        tableLocksWaited: '테이블 잠금 대기',
        tableLocksWaitedHelper: '값이 너무 크면 데이터베이스 성능을 증가시키는 것을 고려해야 합니다.',

        performanceTuning: '성능 튜닝',
        optimizationScheme: '최적화 방안',
        keyBufferSizeHelper: '인덱스용 버퍼 크기',
        queryCacheSizeHelper: '쿼리 캐시. 이 기능이 비활성화된 경우 이 값을 0으로 설정하세요.',
        tmpTableSizeHelper: '임시 테이블 캐시 크기',
        innodbBufferPoolSizeHelper: 'Innodb 버퍼 크기',
        innodbLogBufferSizeHelper: 'Innodb 로그 버퍼 크기',
        sortBufferSizeHelper: '* 연결당, 스레드 정렬 버퍼 크기',
        readBufferSizeHelper: '* 연결당, 읽기 버퍼 크기',
        readRndBufferSizeHelper: '* 연결당, 임의 읽기 버퍼 크기',
        joinBufferSizeHelper: '* 연결당, 조인 테이블 캐시 크기',
        threadStackelper: '* 연결당, 스레드별 스택 크기',
        binlogCacheSizeHelper: '* 연결당, 이진 로그 캐시 크기 (4096의 배수)',
        threadCacheSizeHelper: '스레드 풀 크기',
        tableOpenCacheHelper: '테이블 캐시',
        maxConnectionsHelper: '최대 연결 수',
        restart: '재시작',

        log: '로그',
        slowLog: '느린 로그',
        noData: '아직 느린 로그가 없습니다.',

        isOn: '켜짐',
        longQueryTime: '임계값(s)',
        thresholdRangeHelper: '올바른 임계값을 입력하십시오 (1 - 600).',

        timeout: '타임아웃',
        timeoutHelper: '유휴 연결의 타임아웃 기간. 0은 연결이 지속적으로 유지됨을 의미합니다.',
        maxclients: '최대 클라이언트',
        requirepassHelper:
            '비밀번호가 설정되지 않은 경우 이 필드를 비워 두세요. 변경 사항은 별도로 저장하고 컨테이너를 재시작해야 합니다!',
        databases: '데이터베이스 수',
        maxmemory: '최대 메모리 사용량',
        maxmemoryHelper: '0은 제한이 없음을 의미합니다.',
        tcpPort: '현재 수신 포트.',
        uptimeInDays: '운영 일수.',
        connectedClients: '연결된 클라이언트 수.',
        usedMemory: '현재 Redis 의 메모리 사용량.',
        usedMemoryRss: '운영 체제에서 요청한 메모리 크기.',
        usedMemoryPeak: 'Redis 의 최대 메모리 소비량.',
        memFragmentationRatio: '메모리 단편화 비율.',
        totalConnectionsReceived: '시작 이후 총 연결된 클라이언트 수.',
        totalCommandsProcessed: '실행된 총 명령 수.',
        instantaneousOpsPerSec: '초당 서버에서 실행된 명령 수.',
        keyspaceHits: '데이터베이스 키가 성공적으로 발견된 횟수.',
        keyspaceMisses: '데이터베이스 키를 찾지 못한 횟수.',
        hit: '데이터베이스 키 발견 비율.',
        latestForkUsec: '마지막 fork() 작업에 소요된 마이크로초 수.',
        redisCliHelper: `"redis-cli" 서비스가 감지되지 않았습니다. 서비스를 먼저 활성화하십시오.`,
        redisQuickCmd: 'Redis 빠른 명령',
        recoverHelper: '이 작업은 데이터를 [{0}]으로 덮어씁니다. 계속하시겠습니까?',
        submitIt: '데이터 덮어쓰기',

        baseConf: '기본 설정',
        allConf: '모든 설정',
        restartNow: '지금 재시작',
        restartNowHelper1:
            '구성 변경 사항이 적용되려면 시스템을 재시작해야 합니다. 데이터가 지속되어야 하는 경우 먼저 저장 작업을 수행하십시오.',
        restartNowHelper: '이 작업은 시스템이 재시작된 후에만 적용됩니다.',

        persistence: '지속성',
        rdbHelper1: '초 단위, 삽입',
        rdbHelper2: '데이터 항목 수',
        rdbHelper3: '조건을 충족하면 RDB 지속성이 트리거됩니다.',
        rdbInfo: '규칙 목록의 값이 1에서 100000 사이여야 합니다.',

        containerConn: '컨테이너 연결',
        connAddress: '주소',
        connPort: '포트',
        containerConnHelper:
            '이 연결 주소는 웹사이트 런타임(PHP 등) 또는 컨테이너에서 실행 중인 애플리케이션에서 사용할 수 있습니다.',
        remoteConn: '외부 연결',
        remoteConnHelper2:
            '이 연결 주소는 컨테이너 외부 또는 외부 애플리케이션에서 실행 중인 애플리케이션에서 사용할 수 있습니다.',
        localIP: '로컬 IP',
    },
    ai_tools: {
        model: {
            model: '모델',
            create: '모델 추가',
            create_helper: '가져오기 "{0}"',
            ollama_doc: 'Ollama 공식 웹사이트를 방문하여 더 많은 모델을 검색하고 찾을 수 있습니다.',
            container_conn_helper: '컨테이너 간 접근 또는 연결에 이 주소를 사용',
            ollama_sync: 'Ollama 모델 동기화 중 다음 모델이 존재하지 않음을 발견했습니다. 삭제하시겠습니까?',
            from_remote: '이 모델은 1Panel을 통해 다운로드되지 않았으며 관련 풀 로그가 없습니다.',
            no_logs: '이 모델의 풀 로그가 삭제되어 관련 로그를 볼 수 없습니다.',
        },
        gpu: {
            gpu: 'GPU 모니터',
            base: '기본 정보',
            gpuHelper: '현재 시스템에서 NVIDIA-SMI 또는 XPU-SMI 명령이 감지되지 않았습니다. 확인 후 다시 시도하세요!',
            driverVersion: '드라이버 버전',
            cudaVersion: 'CUDA 버전',
            process: '프로세스 정보',
            type: '유형',
            typeG: '그래픽',
            typeC: '연산',
            typeCG: '연산 + 그래픽',
            processName: '프로세스 이름',
            processMemoryUsage: '메모리 사용량',
            temperatureHelper: 'GPU 온도가 높으면 GPU 주파수 제한이 발생할 수 있습니다.',
            performanceStateHelper: 'P0(최대 성능)부터 P12(최소 성능)까지',
            busID: '버스 ID',
            persistenceMode: '지속 모드',
            enabled: '활성화됨',
            disabled: '비활성화됨',
            persistenceModeHelper: '지속 모드는 작업 응답 속도를 빠르게 하지만 대기 전력 소비를 증가시킵니다.',
            displayActive: '그래픽 카드 초기화됨',
            displayActiveT: '예',
            displayActiveF: '아니요',
            ecc: '오류 감지 및 수정 기술',
            computeMode: '연산 모드',
            default: '기본값',
            exclusiveProcess: '단독 프로세스',
            exclusiveThread: '단독 스레드',
            prohibited: '금지됨',
            defaultHelper: '기본값: 프로세스가 동시에 실행될 수 있음',
            exclusiveProcessHelper:
                '단독 프로세스: 하나의 CUDA 컨텍스트만 GPU 를 사용할 수 있지만, 여러 스레드에서 공유 가능',
            exclusiveThreadHelper: '단독 스레드: CUDA 컨텍스트의 하나의 스레드만 GPU 를 사용할 수 있음',
            prohibitedHelper: '금지됨: 프로세스가 동시에 실행되는 것이 허용되지 않음',
            migModeHelper: '사용자 수준에서 GPU 를 물리적으로 분리하는 MIG 인스턴스를 생성하는 데 사용됩니다.',
            migModeNA: '지원되지 않음',
        },
    },
    container: {
        create: '컨테이너 만들기',
        edit: '컨테이너 편집',
        updateHelper1: '이 컨테이너가 앱 스토어에서 왔음을 감지했습니다. 다음 두 가지 사항을 유의하십시오:',
        updateHelper2: '1. 현재 수정 사항은 앱 스토어에 설치된 애플리케이션에 동기화되지 않습니다.',
        updateHelper3: '2. 설치된 페이지에서 애플리케이션을 수정하면 현재 편집된 내용이 무효화됩니다.',
        updateHelper4: '컨테이너 편집에는 재빌드가 필요하며, 비지속적인 데이터는 손실됩니다. 계속하시겠습니까?',
        containerList: '컨테이너 목록',
        operatorHelper: '{0} 작업이 다음 컨테이너에서 수행됩니다. 계속하시겠습니까?',
        operatorAppHelper:
            '"{0}" 작업이 다음 컨테이너에서 수행되며, 실행 중인 서비스에 영향을 미칠 수 있습니다. 계속하시겠습니까?',
        start: '시작',
        stop: '중지',
        restart: '재시작',
        kill: '강제 종료',
        pause: '일시 정지',
        unpause: '재개',
        rename: '이름 변경',
        remove: '제거',
        removeAll: '모두 제거',
        containerPrune: '정리',
        containerPruneHelper1: '이 작업은 중지된 모든 컨테이너를 삭제합니다.',
        containerPruneHelper2:
            "앱 스토어에서 가져온 컨테이너는 정리 후 '앱 스토어 -> 설치됨' 페이지로 이동하여 '재빌드' 버튼을 클릭하여 재설치해야 합니다.",
        containerPruneHelper3: '이 작업은 취소할 수 없습니다. 계속하시겠습니까?',
        imagePrune: '정리',
        imagePruneSome: '라벨 없는 이미지 정리',
        imagePruneSomeEmpty: "라벨이 'none'인 이미지가 정리되지 않았습니다.",
        imagePruneSomeHelper: "컨테이너에서 사용되지 않는 'none' 태그가 붙은 이미지를 정리합니다.",
        imagePruneAll: '사용되지 않는 이미지 정리',
        imagePruneAllEmpty: '사용되지 않는 이미지가 정리되지 않았습니다.',
        imagePruneAllHelper: '사용되지 않는 이미지를 정리합니다.',
        networkPrune: '정리',
        networkPruneHelper: '사용되지 않는 네트워크를 모두 제거합니다. 계속하시겠습니까?',
        volumePrune: '정리',
        volumePruneHelper: '사용되지 않는 로컬 볼륨을 모두 제거합니다. 계속하시겠습니까?',
        cleanSuccess: '작업이 성공적으로 완료되었습니다. 이번 정리에서 {0}개의 항목이 정리되었습니다!',
        cleanSuccessWithSpace:
            '작업이 성공적으로 완료되었습니다. 이번 정리에서 {0}개의 디스크가 정리되었으며, 확보된 디스크 공간은 {1}입니다!',
        container: '컨테이너 | 컨테이너들',
        unExposedPort: '현재 포트 매핑 주소는 127.0.0.1로 외부 액세스를 활성화할 수 없습니다.',
        upTime: '업타임',
        all: '모두',
        fetch: '가져오기',
        lines: '라인',
        linesHelper: '올바른 로그 수를 입력하세요!',
        lastDay: '지난 하루',
        last4Hour: '지난 4시간',
        lastHour: '지난 1시간',
        last10Min: '지난 10분',
        cleanLog: '로그 정리',
        downLogHelper1: '이 작업은 컨테이너 {0}의 모든 로그를 다운로드합니다. 계속하시겠습니까?',
        downLogHelper2: '이 작업은 컨테이너 {0}의 최근 {0}개의 로그를 다운로드합니다. 계속하시겠습니까?',
        cleanLogHelper: '이 작업은 컨테이너를 재시작해야 하며 취소할 수 없습니다. 계속하시겠습니까?',
        newName: '새 이름',
        source: '리소스 사용',
        cpuUsage: 'CPU 사용',
        cpuTotal: '전체 CPU',
        core: '코어',
        memUsage: '메모리 사용',
        memTotal: '메모리 한도',
        memCache: '메모리 캐시',
        ip: 'IP 주소',
        cpuShare: 'CPU 공유',
        cpuShareHelper:
            '컨테이너 엔진은 기본값으로 1024를 사용합니다. 이를 늘리면 컨테이너에 더 많은 CPU 시간을 할당할 수 있습니다.',
        inputIpv4: '예시: 192.168.1.1',
        inputIpv6: '예시: 2001:0db8:85a3:0000:0000:8a2e:0370:7334',
        containerFromAppHelper:
            '이 컨테이너가 앱 스토어에서 왔음을 감지했습니다. 앱 작업으로 현재 편집이 무효화될 수 있습니다.',
        containerFromAppHelper1:
            '설치된 애플리케이션 목록에서 [매개변수] 버튼을 클릭하여 편집 페이지로 이동하고 컨테이너 이름을 수정하세요.',
        command: '명령어',
        console: '컨테이너 상호작용',
        tty: '가상 TTY 할당 (-t)',
        openStdin: 'STDIN 을 열어둡니다. 연결되지 않더라도 계속 열려있습니다 (-i)',
        custom: '사용자 정의',
        emptyUser: '비워두면 기본값으로 로그인합니다.',
        containerTerminal: '터미널',
        privileged: '특권 모드',
        privilegedHelper:
            '컨테이너가 호스트에서 특정 특권 작업을 수행할 수 있도록 허용합니다. 이는 보안 위험을 초래할 수 있으므로 주의해서 사용하십시오.',
        editComposeHelper:
            '참고: 설정된 환경 변수는 기본적으로 1panel.env 파일에 작성됩니다. 컨테이너에서 이러한 매개변수를 사용하려면 compose 파일에 env_file 참조를 수동으로 추가해야 합니다.',
        upgradeHelper: '레포지토리 이름/이미지 이름: 이미지 버전',
        upgradeWarning2:
            '업그레이드 작업은 컨테이너를 재빌드해야 하며, 비지속적인 데이터가 손실됩니다. 계속하시겠습니까?',
        oldImage: '현재 이미지',
        targetImage: '대상 이미지',
        imageLoadErr: '컨테이너에 대한 이미지 이름이 감지되지 않았습니다.',
        appHelper: '이 컨테이너는 앱 스토어에서 왔으며 업그레이드 시 서비스가 중단될 수 있습니다.',
        input: '수동 입력',
        forcePull: '이미지 강제 풀',
        forcePullHelper: '이 작업은 서버에 있는 기존 이미지를 무시하고 레지스트리에서 최신 이미지를 강제로 가져옵니다.',
        server: '호스트',
        serverExample: '80, 80-88, ip:80 또는 ip:80-88',
        containerExample: '80 또는 80-88',
        exposePort: '포트 노출',
        exposeAll: '모든 포트 노출',
        cmdHelper: '예시: nginx -g "daemon off;"',
        entrypointHelper: '예시: docker-entrypoint.sh',
        autoRemove: '자동 제거',
        cpuQuota: 'CPU 코어 수',
        memoryLimit: '메모리',
        limitHelper: '0으로 설정하면 제한이 없으며, 최대값은 {0}입니다.',
        mount: '마운트',
        volumeOption: '볼륨',
        hostOption: '호스트',
        serverPath: '서버 경로',
        containerDir: '컨테이너 경로',
        volumeHelper: '저장소 볼륨의 내용이 올바른지 확인하십시오.',
        modeRW: '읽기/쓰기',
        modeR: '읽기 전용',
        mode: '모드',
        env: '환경',
        restartPolicy: '재시작 정책',
        always: '항상',
        unlessStopped: '중지되지 않는 한',
        onFailure: '실패 시 (기본 5회)',
        no: '절대',
        monitor: '모니터',
        refreshTime: '새로 고침 간격',
        cache: '캐시',
        image: '이미지 | 이미지들',
        imagePull: '풀',
        imagePush: '푸시',
        imageDelete: '이미지 삭제',
        imageDeleteTag: '이미지 태그 삭제',
        imageTagDeleteHelper: '이 이미지 ID와 관련된 다른 태그를 제거합니다.',
        repoName: '컨테이너 저장소 이름',
        imageName: '이미지 이름',
        pull: '풀',
        path: '경로',
        importImage: '가져오기',
        build: '빌드',
        imageBuild: '이미지 빌드',
        pathSelect: '경로',
        label: '레이블',
        imageTag: '이미지 태그',
        push: '푸시',
        fileName: '파일 이름',
        export: '내보내기',
        exportImage: '이미지 내보내기',
        version: '버전',
        size: '크기',
        from: '출처',
        tag: '태그',
        tagHelper: '한 줄에 하나씩. 예시:\nkey1=value1\nkey2=value2',
        imageNameHelper: '이미지 이름과 태그, 예시: nginx:latest',
        cleanBuildCache: '빌드 캐시 정리',
        delBuildCacheHelper: `이 작업은 빌드 중 생성된 모든 캐시된 아티팩트를 삭제하며 되돌릴 수 없습니다. 계속 하시겠습니까?`,
        urlWarning: 'URL 접두어에 http:// 또는 https://를 포함할 필요는 없습니다. 수정해 주세요.',

        network: '네트워크 | 네트워크들',
        networkHelper: '이로 인해 일부 애플리케이션과 실행 환경이 제대로 작동하지 않을 수 있습니다. 계속 하시겠습니까?',
        createNetwork: '생성',
        networkName: '이름',
        driver: '드라이버',
        option: '옵션',
        attachable: '연결 가능',
        subnet: '서브넷',
        scope: 'IP 범위',
        gateway: '게이트웨이',
        auxAddress: '제외 IP',

        volume: '볼륨 | 볼륨들',
        volumeDir: '볼륨 디렉터리',
        nfsEnable: 'NFS 스토리지 사용',
        nfsAddress: '주소',
        mountpoint: '마운트 지점',
        mountpointNFSHelper: '예: /nfs, /nfs-share',
        options: '옵션',
        createVolume: '생성',

        repo: '레지스트리',
        createRepo: '추가',
        httpRepoHelper: 'HTTP 타입 저장소 작업 시 Docker 서비스 재시작이 필요합니다.',
        httpRepo: 'HTTP 프로토콜을 선택하면 Docker 서비스를 재시작하여 불안정한 레지스트리에 추가해야 합니다.',
        delInsecure: '신뢰할 수 없는 항목 삭제',
        delInsecureHelper:
            '이 작업은 Docker 서비스를 재시작하여 불안정한 레지스트리에서 제거합니다. 계속 하시겠습니까?',
        downloadUrl: '서버',
        imageRepo: '이미지 레포지토리',
        repoHelper: '거울 레포지토리/조직/프로젝트가 포함되어 있습니까?',
        auth: '인증 필요',
        mirrorHelper:
            '거울이 여러 개 있을 경우 각 줄에 하나씩 표시해야 합니다. 예시:\nhttp://xxxxxx.m.daocloud.io \nhttps://xxxxxx.mirror.aliyuncs.com',
        registrieHelper:
            '개인 레지스트리가 여러 개 있을 경우 각 줄에 하나씩 표시해야 합니다. 예시:\n172.16.10.111:8081 \n172.16.10.112:8081',

        compose: '컴포즈 | 컴포즈들',
        fromChangeHelper: '소스를 변경하면 현재 편집한 내용이 삭제됩니다. 계속 하시겠습니까?',
        composePathHelper: '구성 파일 저장 경로: {0}',
        composeHelper: '1Panel 에디터나 템플릿을 통해 생성된 컴포지션은 {0}/docker/compose 디렉토리에 저장됩니다.',
        deleteFile: '파일 삭제',
        allDelete: '영구 삭제',
        deleteComposeHelper:
            '이 작업은 컴포즈와 관련된 모든 파일을 삭제합니다. 구성을 포함한 지속적인 파일도 포함됩니다. 신중히 진행해 주세요!',
        deleteCompose: '" 이 컴포즈를 삭제하시겠습니까?',
        apps: '앱 스토어',
        local: '로컬',
        createCompose: '생성',
        composeDirectory: '디렉토리',
        template: '템플릿',
        composeTemplate: '컴포즈 템플릿 | 컴포즈 템플릿들',
        createComposeTemplate: '생성',
        description: '설명',
        content: '내용',
        contentEmpty: '컴포즈 내용이 비어 있습니다. 입력 후 다시 시도해 주세요!',
        containerNumber: '컨테이너 수',
        containerStatus: '컨테이너 상태',
        exited: '종료됨',
        running: '실행 중',
        down: '중지됨',
        up: '실행됨',
        composeDetailHelper: '이 컴포즈는 1Panel 외부에서 생성되었습니다. 시작 및 중지 작업은 지원되지 않습니다.',
        composeOperatorHelper: '{1} 작업이 {0}에서 수행됩니다. 계속 하시겠습니까?',
        composeDownHelper:
            '이 작업은 {0} 컴포즈 아래의 모든 컨테이너와 네트워크를 중지하고 제거합니다. 계속 하시겠습니까?',

        setting: '설정 | 설정들',
        operatorStatusHelper: '이 작업은 Docker 서비스를 "{0}" 합니다. 계속 하시겠습니까?',
        dockerStatus: 'Docker 서비스',
        daemonJsonPathHelper: '구성 경로가 docker.service 에 지정된 경로와 동일한지 확인하십시오.',
        mirrors: '레지스트리 미러들',
        mirrorsHelper: '',
        mirrorsHelper2: '자세한 내용은 공식 문서를 참조하십시오.',
        registries: '불안정한 레지스트리들',
        ipv6Helper:
            'IPv6를 활성화하려면 IPv6 컨테이너 네트워크를 추가해야 합니다. 구체적인 구성 단계를 공식 문서에서 참조하십시오.',
        ipv6CidrHelper: '컨테이너를 위한 IPv6 주소 풀 범위',
        ipv6TablesHelper: 'ip6tables 규칙에 대해 Docker IPv6 을 자동 구성합니다.',
        experimentalHelper: 'ip6tables 를 활성화하려면 이 구성을 켜야 합니다. 그렇지 않으면 ip6tables가 무시됩니다.',
        cutLog: '로그 옵션',
        cutLogHelper1: '현재 구성은 새로 생성된 컨테이너에만 영향을 미칩니다.',
        cutLogHelper2: '기존 컨테이너는 재생성해야 구성이 적용됩니다.',
        cutLogHelper3:
            '컨테이너를 재생성하면 데이터 손실이 발생할 수 있습니다. 중요한 데이터가 포함된 컨테이너는 재구성 전 백업을 꼭 해주세요.',
        maxSize: '최대 크기',
        maxFile: '최대 파일',
        liveHelper:
            '기본적으로 Docker 데몬이 종료되면 실행 중인 컨테이너도 종료됩니다. 데몬이 비활성화된 상태에서 컨테이너를 계속 실행하려면 데몬을 설정할 수 있습니다. 이 기능은 라이브 복구라고 불리며, 데몬 충돌, 예정된 중단 또는 업그레이드로 인한 컨테이너 다운타임을 줄이는 데 도움을 줍니다.',
        liveWithSwarmHelper: 'live-restore 데몬 구성은 스웜 모드와 호환되지 않습니다.',
        iptablesDisable: 'iptables 비활성화',
        iptablesHelper1: 'Docker 에 대한 iptables 규칙을 자동으로 구성합니다.',
        iptablesHelper2: 'iptables 를 비활성화하면 컨테이너가 외부 네트워크와 통신할 수 없습니다.',
        daemonJsonPath: '구성 경로',
        serviceUnavailable: `현재 Docker 서비스가 시작되지 않았습니다.`,
        startIn: '시작하려면',
        sockPath: '유닉스 도메인 소켓',
        sockPathHelper: 'Docker 데몬과 클라이언트 간의 통신 채널입니다.',
        sockPathHelper1: '기본 경로: /var/run/docker-x.sock',
        sockPathMsg: '소켓 경로 설정을 저장하면 Docker 서비스가 사용 불가능할 수 있습니다. 계속 하시겠습니까?',
        sockPathErr: '올바른 Docker 소켓 파일 경로를 선택하거나 입력해 주세요.',
        related: '관련',
        includeAppstore: '앱 스토어에서 컨테이너 표시',

        cleanDockerDiskZone: 'Docker 에서 사용하는 디스크 공간 정리',
        cleanImagesHelper: '(사용되지 않는 모든 이미지를 정리합니다.)',
        cleanContainersHelper: '(정지된 모든 컨테이너를 정리합니다.)',
        cleanVolumesHelper: '(사용되지 않는 모든 로컬 볼륨을 정리합니다.)',

        makeImage: '이미지 생성',
        newImageName: '새 이미지 이름',
        commitMessage: '커밋 메시지',
        author: '작성자',
        ifPause: '생성 중 컨테이너 일시 정지',
        ifMakeImageWithContainer: '이 컨테이너에서 새 이미지를 생성하시겠습니까?',
    },
    cronjob: {
        create: '크론 작업 생성',
        edit: '크론 작업 수정',
        cronTask: '크론 작업 | 크론 작업들',
        changeStatus: '상태 변경',
        disableMsg: '이 작업은 예약된 작업이 자동으로 실행되지 않도록 멈춥니다. 계속하시겠습니까?',
        enableMsg: '이 작업은 예약된 작업이 자동으로 실행되도록 허용합니다. 계속하시겠습니까?',
        taskType: '작업 유형',
        record: '레코드',
        viewRecords: '레코드 보기',
        shell: '셸',
        log: '백업 로그',
        logHelper: '시스템 백업 로그',
        ogHelper1: '1. 1Panel 시스템 로그',
        logHelper2: '2. 서버 SSH 로그인 로그',
        logHelper3: '3. 모든 사이트 로그',
        containerCheckBox: '컨테이너 내 (컨테이너 명령어 입력 불필요)',
        containerName: '컨테이너 이름',
        ntp: '시간 동기화',
        ntp_helper: 'Toolbox 의 빠른 설정 페이지에서 NTP 서버를 구성할 수 있습니다.',
        app: '백업 앱',
        website: '백업 웹사이트',
        rulesHelper: '여러 개의 압축 제외 규칙이 있을 경우 줄 바꿈으로 표시해야 합니다. 예시:\n*.log \n*.sql',
        lastRecordTime: '마지막 실행 시간',
        all: '전체',
        failedRecord: '실패한 레코드',
        successRecord: '성공한 레코드',
        database: '백업 데이터베이스',
        missBackupAccount: '백업 계정을 찾을 수 없습니다',
        syncDate: '동기화 시간',
        clean: '캐시 정리',
        curl: '접속 URL',
        taskName: '작업 이름',
        cronSpec: '트리거 주기',
        cronSpecHelper: '올바른 실행 주기를 입력해 주세요',
        cleanHelper: '이 작업은 모든 작업 실행 레코드, 백업 파일, 로그 파일을 기록합니다. 계속하시겠습니까?',
        directory: '백업 디렉토리',
        sourceDir: '백업 디렉토리',
        snapshot: '시스템 스냅샷',
        allOptionHelper: `현재 작업 계획은 모든 [{0}]을 백업하는 것입니다. 현재 직접 다운로드는 지원되지 않습니다. [{0}] 메뉴에서 백업 목록을 확인하실 수 있습니다.`,
        exclusionRules: '배제 규칙',
        exclusionRulesHelper: '배제 규칙은 이 백업의 모든 압축 작업에 적용됩니다.',
        default_download_path: '기본 다운로드 링크',
        saveLocal: '로컬 백업 보관 (클라우드 저장소 복사본 수와 동일)',
        url: 'URL 주소',
        targetHelper: '백업 계정은 패널 설정에서 관리됩니다.',
        retainCopies: '기록 보관',
        retainCopiesHelper: '실행 기록과 로그에 대해 보관할 복사본 수',
        retainCopiesHelper1: '백업 파일에 대해 보관할 복사본 수',
        retainCopiesUnit: '개 (보기)',
        cronSpecRule: '라인 {0}의 실행 주기 형식이 잘못되었습니다. 확인 후 다시 시도해 주세요!',
        perMonthHelper: '매월 {0}일 {1}:{2}에 실행',
        perWeekHelper: '매주 {0}일 {1}:{2}에 실행',
        perDayHelper: '매일 {0}:{1}에 실행',
        perHourHelper: '매시간 {0}분에 실행',
        perNDayHelper: '매 {0}일마다 {1}:{2}에 실행',
        perNHourHelper: '매 {0}시간마다 {1}에 실행',
        perNMinuteHelper: '매 {0}분마다 실행',
        perNSecondHelper: '매 {0}초마다 실행',
        perMonth: '매월',
        perWeek: '매주',
        perHour: '매시간',
        perNDay: '매 N일',
        perDay: '매일',
        perNHour: '매 N시간',
        perNMinute: '매 N분',
        perNSecond: '매 N초',
        day: '일',
        dayUnit: 'd',
        monday: '월요일',
        tuesday: '화요일',
        wednesday: '수요일',
        thursday: '목요일',
        friday: '금요일',
        saturday: '토요일',
        sunday: '일요일',
        shellContent: '스크립트',
        errRecord: '잘못된 로깅',
        errHandle: '크론 작업 실행 실패',
        noRecord: '크론 작업을 트리거하고 나면 여기에 레코드가 표시됩니다.',
        cleanData: '데이터 정리',
        cleanRemoteData: '원격 데이터 삭제',
        cleanDataHelper: '이 작업에서 생성된 백업 파일을 삭제합니다.',
        noLogs: '작업 출력이 아직 없습니다...',
        errPath: '백업 경로 [{0}] 오류, 다운로드할 수 없습니다!',
        cutWebsiteLog: '웹사이트 로그 회전',
        cutWebsiteLogHelper: '회전된 로그 파일은 1Panel 의 백업 디렉토리로 백업됩니다.',
        requestExpirationTime: '업로드 요청 만료 시간(시간)',
        unitHours: '단위: 시간',
        alertTitle: '예정된 작업 - {0} 「{1}」 작업 실패 경고',
    },
    monitor: {
        monitor: '모니터링',
        globalFilter: '전역 필터',
        enableMonitor: '활성화',
        storeDays: '만료일',
        cleanMonitor: '모니터링 기록 정리',

        avgLoad: '평균 부하',
        loadDetail: '부하 세부사항',
        resourceUsage: '자원 사용률',
        networkCard: '네트워크 인터페이스',
        read: '읽기',
        write: '쓰기',
        readWriteCount: 'I/O 작업',
        readWriteTime: 'I/O 지연 시간',
        today: '오늘',
        yesterday: '어제',
        lastNDay: '최근 {0}일',
        memory: '메모리',
        cache: '캐시',
        disk: '디스크',
        network: '네트워크',
        up: '업',
        down: '다운',
        interval: '간격(분)',

        gpuUtil: 'GPU 사용률',
        temperature: '온도',
        performanceState: '성능 상태',
        powerUsage: '전력 사용량',
        memoryUsage: '메모리 사용량',
        fanSpeed: '팬 속도',
    },
    terminal: {
        conn: '연결',
        connLocalErr: '자동 인증에 실패했습니다. 로컬 서버 로그인 정보를 입력해주세요.',
        testConn: '연결 테스트',
        saveAndConn: '저장 후 연결',
        connTestOk: '연결 정보가 유효합니다.',
        connTestFailed: '연결할 수 없습니다. 연결 정보를 확인해주세요.',
        host: '호스트 | 호스트들',
        createConn: '새 연결',
        group: '그룹',
        manageGroup: '그룹 관리',
        noHost: '호스트 없음',
        groupChange: '그룹 변경',
        expand: '모두 확장',
        fold: '모두 축소',
        batchInput: '배치 처리',
        quickCommand: '빠른 명령 | 빠른 명령들',
        quickCommandHelper: '"터미널 -> 터미널" 하단에서 빠른 명령을 사용할 수 있습니다.',
        groupDeleteHelper: '그룹을 제거하면 해당 그룹의 모든 연결이 기본 그룹으로 이동됩니다. 계속하시겠습니까?',
        command: '명령',
        quickCmd: '빠른 명령',
        addHost: '추가',
        localhost: '로컬호스트',
        ip: '주소',
        authMode: '인증 방식',
        passwordMode: '비밀번호',
        rememberPassword: '인증 정보 기억하기',
        keyMode: '개인 키',
        key: '개인 키',
        keyPassword: '개인 키 비밀번호',
        emptyTerminal: '현재 연결된 터미널이 없습니다.',
    },
    toolbox: {
        swap: {
            swap: '스왑 파티션',
            swapHelper1: '스왑 크기는 물리적 메모리의 1~2배로 설정해야 하며, 특정 요구 사항에 따라 조정 가능합니다.',
            swapHelper2:
                '스왑 파일을 생성하기 전에 시스템 디스크에 충분한 가용 공간이 있는지 확인하세요. 스왑 파일 크기만큼 디스크 공간이 점유됩니다.',
            swapHelper3:
                '스왑은 메모리 압력을 완화하는 데 도움이 될 수 있지만, 단지 대안일 뿐입니다. 스왑에 과도하게 의존하면 시스템 성능이 저하될 수 있으므로 메모리를 추가하거나 애플리케이션 메모리 사용을 최적화하는 것을 우선적으로 고려해야 합니다.',
            swapHelper4: '스왑 사용량을 정기적으로 모니터링하여 시스템이 정상적으로 작동하는지 확인하는 것이 좋습니다.',
            swapDeleteHelper:
                '이 작업은 스왑 파티션 {0}을 제거합니다. 시스템 보안상의 이유로 해당 파일은 자동으로 삭제되지 않습니다. 삭제가 필요한 경우 수동으로 진행하세요!',
            saveHelper: '현재 설정을 먼저 저장해주세요!',
            saveSwap: '현재 구성을 저장하면 스왑 파티션 {0}의 크기가 {1}(으)로 조정됩니다. 계속하시겠습니까?',
            swapMin: '최소 파티션 크기는 40 KB입니다. 수정 후 다시 시도해주세요!',
            swapMax: '파티션 크기의 최대값은 {0}입니다. 수정 후 다시 시도해주세요!',
            swapOff: '최소 파티션 크기는 40 KB입니다. 0으로 설정하면 스왑 파티션이 비활성화됩니다.',
        },
        device: {
            dnsHelper: 'DNS 서버',
            dnsAlert: '/etc/resolv.conf 파일의 구성을 수정하면 시스템 재부팅 후 파일이 기본값으로 복원됩니다.',
            dnsHelper1: 'DNS 항목이 여러 개인 경우 각 항목을 새 줄에 표시해야 합니다. 예:\n114.114.114.114\n8.8.8.8',
            hostsHelper: '호스트 이름 해석',
            hosts: '도메인',
            hostAlert: '주석 처리된 기록은 숨겨져 있습니다. 모든 구성 버튼을 클릭하여 보거나 설정하세요.',
            toolbox: '빠른 설정',
            hostname: '호스트 이름',
            passwd: '시스템 비밀번호',
            passwdHelper: '입력 문자는 $ 및 &를 포함할 수 없습니다.',
            timeZone: '시간대',
            localTime: '서버 시간',
            timeZoneChangeHelper: '시스템 시간대를 변경하려면 서비스를 재시작해야 합니다. 계속하시겠습니까?',
            timeZoneHelper: `"timedatectl" 명령이 설치되지 않은 경우 시간대를 변경할 수 없습니다. 시스템은 시간대 변경에 이 명령을 사용합니다.`,
            timeZoneCN: '베이징',
            timeZoneAM: '로스앤젤레스',
            timeZoneNY: '뉴욕',
            ntpALi: '알리바바',
            ntpGoogle: '구글',
            syncSite: 'NTP 서버',
            hostnameHelper: `호스트 이름 수정은 "hostnamectl" 명령에 따라 달라집니다. 명령이 설치되지 않은 경우 수정이 실패할 수 있습니다.`,
            userHelper: `사용자 이름은 "whoami" 명령을 사용하여 검색됩니다. 명령이 설치되지 않은 경우 검색이 실패할 수 있습니다.`,
            passwordHelper: `비밀번호 수정은 "chpasswd" 명령에 따라 달라집니다. 명령이 설치되지 않은 경우 수정이 실패할 수 있습니다.`,
            hostHelper: '제공된 내용에 빈 값이 포함되어 있습니다. 확인 후 수정하여 다시 시도해주세요!',
            dnsCheck: '가용성 테스트',
            dnsOK: 'DNS 구성 정보가 유효합니다!',
            dnsTestFailed: 'DNS 구성 정보가 유효하지 않습니다.',
        },
        fail2ban: {
            sshPort: 'SSH 포트 청취',
            sshPortHelper: '현재 Fail2ban 은 호스트의 SSH 연결 포트를 청취합니다.',
            noFail2ban: 'Fail2ban 서비스가 감지되지 않았습니다. 공식 문서를 참조하여 설치하세요.',
            unActive: '현재 Fail2ban 서비스가 활성화되어 있지 않습니다.',
            operation: 'Fail2ban 서비스에서 "{0}" 작업을 수행합니다. 계속하시겠습니까?',
            fail2banChange: 'Fail2ban 구성 수정',
            ignoreHelper: '허용 목록에 있는 IP는 차단되지 않습니다. 계속하시겠습니까?',
            bannedHelper: '차단 목록에 있는 IP는 서버에 의해 차단됩니다. 계속하시겠습니까?',
            maxRetry: '최대 재시도 횟수',
            banTime: '차단 시간',
            banTimeHelper: '기본 차단 시간은 10분이며, -1은 영구 차단을 나타냅니다.',
            banTimeRule: '유효한 차단 시간 또는 -1을 입력하세요.',
            banAllTime: '영구 차단',
            findTime: '탐지 기간',
            banAction: '차단 작업',
            banActionOption: '{0}을(를) 사용하여 지정된 IP 주소 차단',
            allPorts: ' (모든 포트)',
            ignoreIP: 'IP 허용 목록',
            bannedIP: 'IP 차단 목록',
            logPath: '로그 경로',
            logPathHelper: '기본값은 /var/log/secure 또는 /var/log/auth.log입니다.',
        },
        ftp: {
            ftp: 'FTP 계정 | FTP 계정들',
            noFtp: `FTP (pure-ftpd) 서비스가 감지되지 않았습니다. 공식 문서를 참조하여 설치하세요.`,
            operation: 'FTP 서비스에서 "{0}" 작업을 수행합니다. 계속하시겠습니까?',
            noPasswdMsg: '현재 FTP 계정의 비밀번호를 가져올 수 없습니다. 비밀번호를 설정한 후 다시 시도하세요!',
            enableHelper: '선택한 FTP 계정을 활성화하면 접근 권한이 복원됩니다. 계속하시겠습니까?',
            disableHelper: '선택한 FTP 계정을 비활성화하면 접근 권한이 취소됩니다. 계속하시겠습니까?',
            syncHelper: '서버와 데이터베이스 간의 FTP 계정 데이터를 동기화합니다. 계속하시겠습니까?',
        },
        clam: {
            clam: '바이러스 검사',
            cron: '예약 스캔',
            cronHelper: '전문 버전에서 예약 스캔 기능을 지원합니다.',
            specErr: '실행 일정 형식 오류입니다. 확인 후 다시 시도하세요!',
            disableMsg: '예약 실행을 중지하면 이 스캔 작업이 자동으로 실행되지 않습니다. 계속하시겠습니까?',
            enableMsg: '예약 실행을 활성화하면 이 스캔 작업이 정기적으로 자동 실행됩니다. 계속하시겠습니까?',
            showFresh: '서명 업데이트 서비스 표시',
            hideFresh: '서명 업데이트 서비스 숨기기',
            clamHelper:
                'ClamAV의 최소 권장 구성은 다음과 같습니다: RAM 3 GiB 이상, 2.0 GHz 이상의 단일 코어 CPU, 최소 5 GiB의 사용 가능한 하드 디스크 공간.',
            noClam: 'ClamAV 서비스가 감지되지 않았습니다. 공식 문서를 참조하여 설치하세요!',
            notStart: 'ClamAV 서비스가 현재 실행 중이 아닙니다. 먼저 시작하세요!',
            removeRecord: '보고서 파일 삭제',
            noRecords: '"Trigger" 버튼을 클릭하여 스캔을 시작하면 이곳에서 기록을 확인할 수 있습니다.',
            removeResultHelper: '작업 실행 중 생성된 보고서 파일을 삭제하여 저장 공간을 확보합니다.',
            removeInfected: '바이러스 파일 삭제',
            removeInfectedHelper: '작업 중 감지된 바이러스 파일을 삭제하여 서버 보안 및 정상 작동을 보장합니다.',
            clamCreate: '스캔 규칙 생성',
            infectedStrategy: '감염 파일 처리 전략',
            remove: '삭제',
            removeHelper: '바이러스 파일을 삭제합니다. 신중히 선택하세요!',
            move: '이동',
            moveHelper: '바이러스 파일을 지정된 디렉토리로 이동합니다.',
            copy: '복사',
            copyHelper: '바이러스 파일을 지정된 디렉토리로 복사합니다.',
            none: '조치 안 함',
            noneHelper: '바이러스 파일에 대해 아무 조치도 취하지 않습니다.',
            scanDir: '스캔 디렉토리',
            infectedDir: '감염 파일 디렉토리',
            scanDate: '스캔 날짜',
            scanResult: '스캔 로그 출력',
            tail: '라인',
            scanTime: '소요 시간',
            infectedFiles: '감염된 파일',
            log: '상세 내용',
            clamConf: 'Clam AV 데몬',
            clamLog: '@:toolbox.clam.clamConf 로그',
            freshClam: 'FreshClam',
            freshClamLog: '@:toolbox.clam.freshClam 로그',
            alertHelper: '전문 버전에서 예약 스캔 및 SMS 알림을 지원합니다.',
            alertTitle: '바이러스 스캔 작업 「{0}」에서 감염된 파일을 발견했습니다.',
        },
    },
    logs: {
        panelLog: '패널 로그',
        operation: '작업 로그',
        login: '로그인 로그',
        loginIP: '로그인 IP',
        loginAddress: '로그인 주소',
        loginAgent: '로그인 에이전트',
        loginStatus: '상태',
        system: '시스템 로그',
        deleteLogs: '로그 정리',
        resource: '자원',
        operate: '작업',
        detail: {
            ai: 'AI',
            groups: '그룹',
            hosts: '호스트',
            apps: '애플리케이션',
            websites: '웹사이트',
            containers: '컨테이너',
            files: '파일 관리',
            runtimes: '런타임',
            process: '프로세스',
            toolbox: '도구상자',
            logs: '패널 로그',
            settings: '패널 설정',
            cronjobs: '크론 작업',
            databases: '데이터베이스',
        },
        websiteLog: '웹사이트 로그',
        runLog: '실행 로그',
        errLog: '에러 로그',
    },
    file: {
        dir: '폴더',
        upload: '업로드',
        uploadFile: '@:file.upload @.lower:file.file',
        uploadDirectory: '@:file.upload @.lower:file.dir',
        download: '다운로드',
        fileName: '파일 이름',
        search: '검색',
        mode: '권한',
        editPermissions: '@:file.mode',
        owner: '소유자',
        file: '파일',
        remoteFile: '원격에서 다운로드',
        share: '공유',
        sync: '데이터 동기화',
        size: '크기',
        updateTime: '수정됨',
        open: '열기',
        rename: '이름 바꾸기',
        role: '권한',
        info: '속성',
        linkFile: '소프트 링크',
        terminal: '터미널',
        batchoperation: '일괄 작업',
        shareList: '공유 목록',
        zip: '압축됨',
        group: '그룹',
        path: '경로',
        public: '기타',
        setRole: '권한 설정',
        link: '파일 링크',
        rRole: '읽기',
        wRole: '쓰기',
        xRole: '실행 가능',
        name: '이름',
        compress: '압축',
        deCompress: '압축 해제',
        compressType: '압축 형식',
        compressDst: '압축 경로',
        replace: '기존 파일 덮어쓰기',
        compressSuccess: '압축 성공',
        deCompressSuccess: '압축 해제 성공',
        deCompressDst: '압축 해제 경로',
        linkType: '링크 유형',
        softLink: '소프트 링크',
        hardLink: '하드 링크',
        linkPath: '링크 경로',
        selectFile: '파일 선택',
        downloadUrl: '원격 URL',
        downloadStart: '다운로드 시작됨',
        moveSuccess: '이동 성공',
        copySuccess: '복사 성공',
        move: '이동',
        copy: '복사',
        calculate: '계산',
        canNotDeCompress: '이 파일은 압축 해제할 수 없습니다',
        uploadSuccess: '업로드 성공',
        downloadProcess: '다운로드 진행률',
        downloading: '다운로드 중...',
        infoDetail: '파일 속성',
        root: '루트 디렉터리',
        list: '파일 목록',
        sub: '하위 폴더',
        downloadSuccess: '다운로드 성공',
        theme: '테마',
        language: '언어',
        eol: '줄 끝',
        copyDir: '복사',
        paste: '붙여넣기',
        cancel: '취소',
        changeOwner: '사용자 및 그룹 수정',
        containSub: '권한 변경을 하위 폴더에 적용',
        ownerHelper:
            'PHP 운영 환경의 기본 사용자: 사용자 그룹은 1000:1000 입니다. 컨테이너 내부 및 외부에서 표시되는 불일치는 정상입니다.',
        searchHelper: '* 등의 와일드카드를 지원합니다',
        uploadFailed: '[{0}] 파일 업로드 실패',
        fileUploadStart: '[{0}] 업로드 중....',
        currentSelect: '현재 선택: ',
        unsupportedType: '지원되지 않는 파일 유형',
        deleteHelper: '다음 파일을 삭제하시겠습니까? 기본적으로 삭제 후 휴지통으로 이동합니다.',
        fileHelper: `참고:\n1. 검색 결과는 정렬할 수 없습니다.\n2. 폴더는 크기로 정렬할 수 없습니다.`,
        forceDeleteHelper: '파일을 영구적으로 삭제합니다(휴지통으로 이동하지 않고 바로 삭제).',
        recycleBin: '휴지통',
        sourcePath: '원래 경로',
        deleteTime: '삭제 시간',
        confirmReduce: '다음 파일을 복원하시겠습니까?',
        reduceSuccess: '복원 성공',
        reduce: '복원',
        reduceHelper: '원래 경로에 동일한 이름의 파일이나 디렉터리가 있으면 덮어씁니다. 계속하시겠습니까?',
        clearRecycleBin: '정리',
        clearRecycleBinHelper: '휴지통을 정리하시겠습니까?',
        favorite: '즐겨찾기',
        removeFavorite: '즐겨찾기에서 제거하시겠습니까?',
        addFavorite: '즐겨찾기에 추가',
        clearList: '목록 정리',
        deleteRecycleHelper: '다음 파일을 영구적으로 삭제하시겠습니까?',
        typeErrOrEmpty: '[{0}] 파일 유형이 잘못되었거나 빈 폴더입니다.',
        dropHelper: '업로드하려는 파일을 여기에 드래그하세요',
        fileRecycleBin: '휴지통 활성화',
        fileRecycleBinMsg: '{0} 휴지통',
        wordWrap: '자동 줄바꿈',
        deleteHelper2: '선택한 파일을 삭제하시겠습니까? 삭제 작업은 되돌릴 수 없습니다.',
        ignoreCertificate: '안전하지 않은 서버 연결 허용',
        ignoreCertificateHelper:
            '안전하지 않은 서버 연결을 허용하면 데이터 유출 또는 변조가 발생할 수 있습니다. 이 옵션은 다운로드 소스를 신뢰할 때만 사용하세요.',
        uploadOverLimit: '파일 수가 1000 개를 초과했습니다! 압축하여 업로드하세요.',
        clashDitNotSupport: '파일 이름에 .1panel_clash 를 포함할 수 없습니다.',
        clashDeleteAlert: `"휴지통" 폴더는 삭제할 수 없습니다.`,
        clashOpenAlert: '휴지통 디렉터리를 열려면 "휴지통" 버튼을 클릭하세요.',
        right: '앞으로',
        back: '뒤로',
        top: '처음으로 돌아가기',
        refresh: '새로고침',
        up: '뒤로가기',
        openWithVscode: 'VS Code 로 열기',
        vscodeHelper: '로컬에 VS Code 가 설치되어 있고 SSH Remote 플러그인이 구성되어 있는지 확인하세요.',
        saveContentAndClose: '파일이 수정되었습니다. 저장 후 닫으시겠습니까?',
        saveAndOpenNewFile: '파일이 수정되었습니다. 저장 후 새 파일을 열겠습니까?',
        noEdit: '파일이 수정되지 않았습니다. 이 작업은 필요하지 않습니다!',
        noNameFolder: '제목 없는 폴더',
        noNameFile: '제목 없는 파일',
        minimap: '코드 미니맵',
        fileCanNotRead: '파일을 읽을 수 없습니다.',
        panelInstallDir: `1Panel 설치 디렉터리는 삭제할 수 없습니다.`,
        existFileTitle: '동일한 이름의 파일 경고',
        existFileHelper: '업로드한 파일에 동일한 이름의 파일이 포함되어 있습니다. 덮어쓰시겠습니까?',
        existFileSize: '파일 크기 (새로운 -> 오래된)',
        existFileDirHelper: '선택한 파일/폴더에 동일한 이름이 이미 존재합니다. 신중하게 작업하세요!',
        coverDirHelper: '덮어쓸 폴더를 선택하면 대상 경로로 복사됩니다!',
        noSuchFile: '파일 또는 디렉터리를 찾을 수 없습니다. 확인 후 다시 시도하세요.',
    },
    ssh: {
        setting: '설정',
        autoStart: '자동 시작',
        enable: '자동 시작 활성화',
        disable: '자동 시작 비활성화',
        sshAlert:
            '목록 데이터는 로그인 날짜를 기준으로 정렬됩니다. 시간대 변경이나 다른 작업이 수행되면 로그인 로그의 날짜에 차이가 발생할 수 있습니다.',
        sshAlert2:
            '"Fail2ban"을 "도구 상자"에서 사용하여 무차별 대입 공격을 시도하는 IP 주소를 차단할 수 있으며, 이는 호스트의 보안을 강화하는 데 도움이 됩니다.',
        sshOperate: 'SSH 서비스에서 "{0}" 작업을 수행합니다. 계속하시겠습니까?',
        sshChange: 'SSH 설정',
        sshChangeHelper: '"{0}"을(를) "{1}"로 변경하였습니다. 계속하시겠습니까?',
        sshFileChangeHelper:
            '구성 파일을 수정하면 서비스 가용성에 영향을 미칠 수 있습니다. 이 작업을 수행할 때는 주의하십시오. 계속하시겠습니까?',
        port: '포트',
        portHelper: 'SSH 서비스가 수신하는 포트를 지정하십시오.',
        listenAddress: '수신 주소',
        allV4V6: '0.0.0.0:{0}(IPv4) 및 :::{0}(IPv6)',
        listenHelper: 'IPv4와 IPv6 설정을 모두 비워두면 "0.0.0.0:{0}(IPv4)"와 ":::{0}(IPv6)"에서 수신합니다.',
        addressHelper: 'SSH 서비스가 수신할 주소를 지정하십시오.',
        permitRootLogin: '루트 사용자 로그인 허용',
        rootSettingHelper: '루트 사용자의 기본 로그인 방법은 "SSH 로그인 허용"입니다.',
        rootHelper1: 'SSH 로그인 허용',
        rootHelper2: 'SSH 로그인 비허용',
        rootHelper3: '키 로그인만 허용',
        rootHelper4: '미리 정의된 명령만 실행할 수 있습니다. 다른 작업은 수행할 수 없습니다.',
        passwordAuthentication: '비밀번호 인증',
        pwdAuthHelper: '비밀번호 인증을 활성화할지 여부입니다. 기본적으로 이 매개변수는 활성화되어 있습니다.',
        pubkeyAuthentication: '키 인증',
        key: '키',
        password: '비밀번호',
        pubkey: '키 정보',
        encryptionMode: '암호화 모드',
        passwordHelper: '6~10자리 숫자 및 영어 대소문자를 포함할 수 있습니다.',
        generate: '키 생성',
        reGenerate: '키 재생성',
        keyAuthHelper: '키 인증을 활성화할지 여부입니다.',
        useDNS: 'useDNS',
        dnsHelper: 'SSH 서버에서 DNS 확인 기능을 활성화하여 연결의 신원을 확인할지 여부를 제어합니다.',
        analysis: '통계 정보',
        denyHelper:
            "'거부' 작업을 다음 주소에서 수행합니다. 설정 후 해당 IP는 서버에 접근할 수 없습니다. 계속하시겠습니까?",
        acceptHelper:
            "'수락' 작업을 다음 주소에서 수행합니다. 설정 후 해당 IP는 정상적으로 접근할 수 있습니다. 계속하시겠습니까?",
        noAddrWarning: '현재 [{0}] 주소가 선택되지 않았습니다. 확인 후 다시 시도하십시오!',
        successful: '성공',
        failed: '실패',
        loginLogs: '로그인 로그',
        loginMode: '모드',
        authenticating: '키',
        publickey: '키',
        belong: '소속',
        local: '로컬',
        config: '구성',
        session: '세션 | 세션들',
        loginTime: '로그인 시간',
        loginIP: '로그인 IP',
        disconnect: '연결 끊기',
        stopSSHWarn: '이 SSH 연결을 끊으시겠습니까?',
    },
    setting: {
        all: '모두',
        panel: '패널',
        user: '패널 사용자',
        userChange: '패널 사용자 변경',
        userChangeHelper: '패널 사용자를 변경하면 로그아웃됩니다. 계속하시겠습니까?',
        passwd: '패널 비밀번호',
        emailHelper: '비밀번호 복구용',
        title: '패널 별칭',
        panelPort: '패널 포트',
        titleHelper: '영문자, 한자, 숫자, 공백, 일반 특수 문자를 포함하여 3~30자의 길이를 지원합니다.',
        portHelper:
            '권장 포트 범위는 8888에서 65535 사이입니다. 참고: 서버에 보안 그룹이 있는 경우, 보안 그룹에서 새로운 포트를 사전에 허용해야 합니다.',
        portChange: '포트 변경',
        portChangeHelper: '서비스 포트를 수정하고 서비스를 다시 시작합니다. 계속하시겠습니까?',
        theme: '테마',
        menuTabs: '메뉴 탭',
        dark: '다크',
        darkGold: '다크 골드',
        light: '라이트',
        auto: '시스템 따라가기',
        language: '언어',
        languageHelper: '기본적으로 브라우저 언어를 따릅니다. 이 설정은 현재 브라우저에서만 적용됩니다.',
        sessionTimeout: '세션 타임아웃',
        sessionTimeoutError: '최소 세션 타임아웃은 300초입니다.',
        sessionTimeoutHelper: '패널에서 {0}초 이상 조작이 없을 경우 자동으로 로그아웃됩니다.',
        systemIP: '시스템 주소',
        proxy: '서버 프록시',
        proxyHelper: '프록시 서버를 설정한 후 다음 시나리오에서 적용됩니다:',
        proxyHelper1: '설치 패키지 다운로드 및 앱 스토어 동기화 (전문 버전에서만 제공)',
        proxyHelper2: '시스템 업데이트 및 업데이트 정보 가져오기 (전문 버전에서만 제공)',
        proxyHelper4: 'Docker 네트워크가 프록시 서버를 통해 액세스됩니다 (전문 버전에서만 제공)',
        proxyHelper3: '시스템 라이선스 인증 및 동기화',
        proxyType: '프록시 유형',
        proxyUrl: '프록시 주소',
        proxyPort: '프록시 포트',
        proxyPasswdKeep: '비밀번호 기억',
        proxyDocker: 'Docker 프록시',
        proxyDockerHelper:
            '프록시 서버 구성을 Docker 에 동기화하여 오프라인 서버 이미지 가져오기 등의 작업을 지원합니다.',
        apiInterface: 'API 활성화',
        apiInterfaceClose: 'API 인터페이스를 사용할 수 없습니다. 앱 기능이 제한됩니다. 계속하시겠습니까?',
        apiInterfaceHelper: '패널 API 인터페이스 액세스를 지원합니다(패널 앱에서 이 기능을 활성화해야 합니다)',
        apiInterfaceAlert1: '운영 환경에서는 활성화하지 마십시오. 서버 보안 위험이 증가할 수 있습니다.',
        apiInterfaceAlert2: '잠재적인 보안 위협을 방지하기 위해 서드파티 애플리케이션으로 API 를 호출하지 마십시오.',
        apiInterfaceAlert3: 'API 문서',
        apiInterfaceAlert4: '사용 설명서',
        apiKey: 'API 키',
        apiKeyHelper: 'API 키는 서드파티 애플리케이션이 API 에 접근하는 데 사용됩니다.',
        ipWhiteList: 'IP 허용 목록',
        ipWhiteListEgs: '한 줄에 하나씩 입력하십시오. 예:\n172.161.10.111\n172.161.10.0/24',
        ipWhiteListHelper: '허용 목록에 있는 IP만 API 에 접근할 수 있습니다.',
        apiKeyValidityTime: '인터페이스 키 유효 기간',
        apiKeyValidityTimeEgs: '인터페이스 키 유효 기간 (분 단위)',
        apiKeyValidityTimeHelper:
            '인터페이스 타임스탬프가 현재 타임스탬프와의 차이가 허용 범위 내에 있을 경우 유효합니다. 값이 0이면 검증이 비활성화됩니다.',
        apiKeyReset: '인터페이스 키 재설정',
        apiKeyResetHelper: '연관된 키 서비스가 무효화됩니다. 서비스에 새 키를 추가하십시오.',
        confDockerProxy: 'Docker 프록시 구성',
        restartNowHelper: 'Docker 프록시 구성을 위해 Docker 서비스를 재시작해야 합니다.',
        restartNow: '즉시 재시작',
        systemIPWarning: '시스템 주소가 현재 설정되어 있지 않습니다. 먼저 제어판에서 설정하세요.',
        systemIPWarning1: '현재 시스템 주소가 {0}으로 설정되어 있어 빠른 리디렉션이 불가능합니다!',
        defaultNetwork: '네트워크 카드',
        syncTime: '서버 시간',
        timeZone: '시간대',
        timeZoneChangeHelper: '시간대를 변경하면 서비스를 재시작해야 합니다. 계속하시겠습니까?',
        timeZoneHelper: '시간대 변경은 시스템 timedatectl 서비스에 따라 작동하며, 1Panel 서비스 재시작 후 적용됩니다.',
        timeZoneCN: '베이징',
        timeZoneAM: '로스앤젤레스',
        timeZoneNY: '뉴욕',
        ntpALi: '알리바바',
        ntpGoogle: '구글',
        syncSite: 'NTP 서버',
        syncSiteHelper: '이 작업은 {0}을(를) 시스템 시간 동기화의 소스로 사용합니다. 계속하시겠습니까?',
        changePassword: '비밀번호 변경',
        oldPassword: '기존 비밀번호',
        newPassword: '새 비밀번호',
        retryPassword: '비밀번호 확인',
        noSpace: '입력 정보에 공백 문자를 포함할 수 없습니다.',
        duplicatePassword: '새 비밀번호는 기존 비밀번호와 동일할 수 없습니다. 다시 입력하십시오!',
        diskClean: '캐시 정리',
        developerMode: '미리보기 프로그램',
        developerModeHelper: '새로운 기능과 수정 사항을 정식 출시 전에 체험하고 초기 피드백을 제공할 수 있습니다.',
        thirdParty: '서드파티 계정',
        addBackupAccount: '{0} 추가',
        noTypeForCreate: '현재 생성된 백업 유형이 없습니다.',
        LOCAL: '서버 디스크',
        OSS: 'Ali OSS',
        S3: 'Amazon S3',
        mode: '모드',
        MINIO: 'MinIO',
        SFTP: 'SFTP',
        WebDAV: 'WebDAV',
        WebDAVAlist: 'Alist 에 WebDAV 를 연결하는 방법은 공식 문서를 참조하십시오.',
        OneDrive: 'Microsoft OneDrive',
        isCN: 'Century Internet',
        isNotCN: '국제 버전',
        client_id: '클라이언트 ID',
        client_secret: '클라이언트 시크릿',
        redirect_uri: '리디렉션 URL',
        onedrive_helper: '사용자 정의 구성은 공식 문서를 참조하십시오.',
        refreshTime: '토큰 갱신 시간',
        refreshStatus: '토큰 갱신 상태',
        backupDir: '백업 디렉터리',
        codeWarning: '현재 인증 코드 형식이 올바르지 않습니다. 다시 확인하십시오!',
        code: '인증 코드',
        codeHelper:
            '"획득" 버튼을 클릭한 다음 OneDrive 에 로그인하여 리디렉션된 링크에서 "code" 이후의 내용을 복사하십시오. 이 입력 상자에 붙여넣으십시오. 자세한 지침은 공식 문서를 참조하십시오.',
        loadCode: '획득',
        COS: 'Tencent COS',
        ap_beijing_1: '베이징 지역 1',
        ap_beijing: '베이징',
        ap_nanjing: '난징',
        ap_shanghai: '상하이',
        ap_guangzhou: '광저우',
        ap_chengdu: '청두',
        ap_chongqing: '충칭',
        ap_shenzhen_fsi: '선전 금융',
        ap_shanghai_fsi: '상하이 금융',
        ap_beijing_fsi: '베이징 금융',
        ap_hongkong: '홍콩, 중국',
        ap_singapore: '싱가포르',
        ap_mumbai: '뭄바이',
        ap_jakarta: '자카르타',
        ap_seoul: '서울',
        ap_bangkok: '방콕',
        ap_tokyo: '도쿄',
        na_siliconvalley: '실리콘밸리 (미국 서부)',
        na_ashburn: '애쉬번 (미국 동부)',
        na_toronto: '토론토',
        sa_saopaulo: '상파울루',
        eu_frankfurt: '프랑크푸르트',
        KODO: 'Qiniu Kodo',
        scType: '스토리지 유형',
        typeStandard: '표준',
        typeStandard_IA: '저빈도 표준',
        typeArchive: '아카이브',
        typeDeep_Archive: '심층 아카이브',
        scStandard:
            '표준 스토리지는 실시간 접근, 빈번한 데이터 상호작용이 필요한 핫 파일이 많은 비즈니스 시나리오에 적합합니다.',
        scStandard_IA:
            '저빈도 스토리지는 접근 빈도가 비교적 낮고 최소 30일 동안 데이터를 저장하는 비즈니스 시나리오에 적합합니다.',
        scArchive: '아카이브 스토리지는 접근 빈도가 극히 낮은 비즈니스 시나리오에 적합합니다.',
        scDeep_Archive: '내구성이 뛰어난 콜드 스토리지는 접근 빈도가 극히 낮은 비즈니스 시나리오에 적합합니다.',
        archiveHelper:
            '아카이브 스토리지 파일은 직접 다운로드할 수 없으며, 해당 클라우드 서비스 제공자의 웹사이트를 통해 복원해야 합니다. 신중히 사용하십시오!',
        backupAlert: 'S3 프로토콜을 지원하는 클라우드 공급자는 Amazon S3 를 사용하여 백업할 수 있습니다.',
        domain: '가속 도메인',
        backupAccount: '백업 계정 | 백업 계정',
        loadBucket: '버킷 가져오기',
        accountName: '계정 이름',
        accountKey: '계정 키',
        address: '주소',
        path: '경로',

        safe: '보안',
        bindInfo: '바인딩 정보',
        bindAll: '모두 수신',
        bindInfoHelper: '서비스 수신 주소나 프로토콜 변경은 서비스 불가 상태를 초래할 수 있습니다. 계속하시겠습니까?',
        ipv6: 'IPv6 수신',
        bindAddress: '수신 주소',
        entrance: '진입점',
        showEntrance: '"개요" 페이지에서 비활성화 경고 표시',
        entranceHelper: '보안 진입점을 활성화하면 지정된 보안 진입점을 통해서만 패널에 로그인할 수 있습니다.',
        entranceError: '5-116자의 안전한 로그인 진입점을 입력하십시오. 숫자나 문자만 지원됩니다.',
        entranceInputHelper: '공백으로 남기면 보안 진입점이 비활성화됩니다.',
        randomGenerate: '랜덤',
        expirationTime: '만료 날짜',
        unSetting: '미설정',
        noneSetting: '패널 비밀번호의 만료 시간을 설정합니다. 만료 후 비밀번호를 재설정해야 합니다.',
        expirationHelper: '비밀번호 만료 시간이 [0]일인 경우 비밀번호 만료 기능이 비활성화됩니다.',
        days: '만료 일수',
        expiredHelper: '현재 비밀번호가 만료되었습니다. 비밀번호를 다시 변경하십시오.',
        timeoutHelper: '[ {0}일 ] 패널 비밀번호가 곧 만료됩니다. 만료 후 비밀번호를 재설정해야 합니다.',
        complexity: '복잡성 검증',
        complexityHelper:
            '활성화하면 비밀번호 검증 규칙이 8-30 자, 영어, 숫자 및 최소 두 개의 특수 문자 포함으로 설정됩니다.',
        bindDomain: '도메인 바인딩',
        unBindDomain: '도메인 바인딩 해제',
        panelSSL: '패널 SSL',
        unBindDomainHelper: '도메인 이름 바인딩 해제 작업은 시스템 보안에 영향을 미칠 수 있습니다. 계속하시겠습니까?',
        bindDomainHelper: '도메인을 바인딩한 후에는 해당 도메인을 통해서만 1Panel 서비스에 접근할 수 있습니다.',
        bindDomainHelper1: '공백으로 남기면 도메인 이름 바인딩이 비활성화됩니다.',
        bindDomainWarning:
            '도메인 바인딩 후 로그아웃되며 설정에 지정된 도메인 이름을 통해서만 1Panel 서비스에 접근할 수 있습니다. 계속하시겠습니까?',
        allowIPs: '허가된 IP',
        unAllowIPs: '허가되지 않은 IP',
        unAllowIPsWarning:
            '허가되지 않은 빈 IP를 설정하면 모든 IP가 시스템에 접근할 수 있어 시스템 보안에 영향을 미칠 수 있습니다. 계속하시겠습니까?',
        allowIPsHelper: '허가된 IP 주소 목록을 설정하면 목록에 있는 IP 주소만 패널 서비스에 접근할 수 있습니다.',
        allowIPsWarning:
            '허가된 IP 주소 목록을 설정하면 목록에 있는 IP 주소만 패널 서비스에 접근할 수 있습니다. 계속하시겠습니까?',
        allowIPsHelper1: '공백으로 남기면 IP 주소 제한이 비활성화됩니다.',
        allowIPEgs: '한 줄에 하나씩 입력하십시오. 예:\n172.16.10.111\n172.16.10.0/24',
        mfa: '2단계 인증 (2FA)',
        mfaClose: 'MFA를 비활성화하면 서비스 보안이 낮아집니다. 계속하시겠습니까?',
        secret: '비밀키',
        mfaInterval: '갱신 간격(초)',
        mfaTitleHelper:
            '제목은 다른 1Panel 호스트를 구별하는 데 사용됩니다. 제목을 수정한 후 다시 스캔하거나 비밀키를 수동으로 추가하세요.',
        mfaIntervalHelper: '갱신 시간을 수정한 후 다시 스캔하거나 비밀키를 수동으로 추가하세요.',
        mfaAlert:
            '일회용 토큰은 현재 시간을 기반으로 생성된 동적 6자리 숫자입니다. 서버 시간이 동기화되어 있는지 확인하세요.',
        mfaHelper: '활성화 후 일회용 토큰 검증이 필요합니다.',
        mfaHelper1: '인증 앱을 다운로드하세요. 예를 들어,',
        mfaHelper2:
            '다음 QR 코드를 인증 앱으로 스캔하거나 비밀키를 복사하여 인증 앱에 입력하여 일회용 토큰을 획득하세요.',
        mfaHelper3: '앱에서 생성된 6자리 숫자를 입력하세요.',
        mfaCode: '일회용 토큰',
        sslChangeHelper: 'HTTPS 설정을 수정하고 서비스를 재시작합니다. 계속하시겠습니까?',
        sslDisable: '비활성화',
        sslDisableHelper: 'HTTPS 서비스를 비활성화하면 패널을 재시작해야 적용됩니다. 계속하시겠습니까?',
        noAuthSetting: '비인가 설정',
        noAuthSettingHelper:
            '지정된 보안 진입점을 사용하지 않거나, 지정된 IP 나 도메인에서 패널에 접근하지 않는 경우 이 응답은 패널 특성을 숨길 수 있습니다.',
        responseSetting: '응답 설정',
        help200: '도움말 페이지',
        error400: '잘못된 요청',
        error401: '권한 없음',
        error403: '접근 금지',
        error404: '페이지를 찾을 수 없음',
        error408: '요청 시간 초과',
        error416: '범위 불만족',
        error444: '연결 닫힘',
        error500: '서버 오류',

        https: '패널의 HTTPS 프로토콜 접근 설정은 패널 접근 보안을 강화할 수 있습니다.',
        certType: '인증서 유형',
        selfSigned: '자가 서명',
        selfSignedHelper: '자가 서명 인증서는 브라우저에서 신뢰하지 않을 수 있으며 보안 경고가 표시될 수 있습니다.',
        select: '선택',
        domainOrIP: '도메인 또는 IP:',
        timeOut: '시간 초과',
        rootCrtDownload: '루트 인증서 다운로드',
        primaryKey: '개인 키',
        certificate: '인증서',
        backupJump: '현재 백업 목록에 없는 파일입니다. 파일 디렉토리에서 다운로드하여 백업에 가져오기를 시도하세요.',

        snapshot: '스냅샷 | 스냅샷들',
        deleteHelper: '타사 백업 계정에 포함된 스냅샷 파일을 포함하여 모든 스냅샷 파일이 삭제됩니다. 계속하시겠습니까?',
        status: '스냅샷 상태',
        ignoreRule: '무시 규칙',
        editIgnoreRule: '@:commons.button.edit @.lower:setting.ignoreRule',
        ignoreHelper:
            '이 규칙은 스냅샷을 생성할 때 1Panel 데이터 디렉토리를 압축하고 백업하는 데 사용됩니다. 기본적으로 소켓 파일은 무시됩니다.',
        ignoreHelper1: '한 줄에 하나씩 입력하세요. 예:\n*.log\n/opt/1panel/cache',
        panelInfo: '1Panel 기본 정보 쓰기',
        panelBin: '1Panel 시스템 파일 백업',
        daemonJson: 'Docker 구성 파일 백업',
        appData: '1Panel 에서 설치된 앱 백업',
        panelData: '1Panel 데이터 디렉토리 백업',
        backupData: '1Panel 의 로컬 백업 디렉토리 백업',
        compress: '스냅샷 파일 생성',
        upload: '스냅샷 파일 업로드',
        recoverDetail: '복구 세부정보',
        createSnapshot: '스냅샷 생성',
        importSnapshot: '스냅샷 동기화',
        importHelper: '스냅샷 디렉토리: ',
        recover: '복구',
        lastRecoverAt: '마지막 복구 시간',
        lastRollbackAt: '마지막 롤백 시간',
        reDownload: '백업 파일 다시 다운로드',
        statusSuccess: '성공',
        statusFailed: '실패',
        recoverErrArch: '서버 아키텍처가 다른 스냅샷 복구는 지원되지 않습니다!',
        recoverErrSize: '디스크 공간이 부족합니다. 확인하거나 정리 후 다시 시도하세요!',
        recoverHelper: '스냅샷 {0} 에서 복구를 시작합니다. 계속하기 전에 다음 정보를 확인하세요:',
        recoverHelper1: '복구에는 Docker 및 1Panel 서비스를 재시작해야 합니다.',
        recoverHelper2: '서버에 충분한 디스크 공간이 있는지 확인하세요. (스냅샷 파일 크기: {0}, 사용 가능한 공간: {1})',
        recoverHelper3:
            '서버 아키텍처가 스냅샷이 생성된 서버의 아키텍처와 일치하는지 확인하세요. (현재 서버 아키텍처: {0})',
        rollback: '롤백',
        rollbackHelper:
            '이 복구를 롤백하면 해당 복구의 모든 파일이 대체되며 Docker 및 1Panel 서비스를 재시작해야 할 수 있습니다. 계속하시겠습니까?',

        upgradeHelper: '업그레이드에는 1Panel 서비스를 재시작해야 합니다. 계속하시겠습니까?',
        noUpgrade: '현재 최신 버전입니다',
        upgradeNotes: '릴리스 노트',
        upgradeNow: '지금 업그레이드',
        source: '다운로드 소스',

        about: '정보',
        project: 'GitHub',
        issue: '이슈',
        doc: '공식 문서',
        star: '별',
        description: '리눅스 서버 패널',
        forum: '토론',
        doc2: '문서',
        currentVersion: '버전',

        license: '라이선스',
        advancedMenuHide: '고급 메뉴 숨기기',
        showMainAdvancedMenu: '하나의 메뉴만 유지하면 사이드바에 주 고급 메뉴만 표시됩니다.',
        showAll: '모두 표시',
        hideALL: '모두 숨기기',
        ifShow: '표시 여부',
        menu: '메뉴',
        confirmMessage: '고급 메뉴 목록을 업데이트하려면 페이지가 새로 고쳐집니다. 계속하시겠습니까?',
        compressPassword: '압축 비밀번호',
        backupRecoverMessage: '압축 또는 압축 해제 비밀번호를 입력하세요 (설정하지 않으려면 비워 두세요)',
    },
    license: {
        community: 'OSS',
        oss: '오픈 소스 소프트웨어',
        pro: 'Pro',
        trial: '체험판',
        subscription: '구독',
        perpetual: '영구 라이선스',
        versionConstraint: '{0} 버전 일시불 구매',
        office: '공식',
        trialInfo: '버전',
        authorizationId: '구독 인증 ID',
        authorizedUser: '인증된 사용자',
        expiresAt: '만료일',
        productName: '제품명',
        productStatus: '제품 상태',
        Lost: '분실',
        Enable: '활성화됨',
        Disable: '비활성화됨',
        lostHelper:
            '라이센스가 최대 재시도 횟수를 초과했습니다. 전문가 버전 기능이 제대로 작동하는지 확인하려면 동기화 버튼을 수동으로 클릭하세요.',
        disableHelper:
            '라이센스 동기화 검증에 실패했습니다. 전문가 버전 기능이 제대로 작동하는지 확인하려면 동기화 버튼을 수동으로 클릭하세요.',
        quickUpdate: '빠른 업데이트',
        import: '가져오기',
        power: '권한 부여',
        unbind: '연결 해제',
        unbindHelper: '연결 해제 후 모든 Pro 관련 설정이 초기화됩니다. 계속하시겠습니까?',
        importLicense: '라이센스',
        importHelper: '라이센스 파일을 여기에 클릭하거나 드래그하세요',
        technicalAdvice: '기술 상담',
        advice: '상담',
        indefinitePeriod: '무제한 기간',
        levelUpPro: 'Pro 로 업그레이드',
        licenseSync: '라이센스 동기화',
        knowMorePro: '더 알아보기',
        closeAlert: '현재 페이지는 패널 설정에서 숨길 수 있습니다',
        introduce: '기능 소개',
        waf: '전문 버전으로 업그레이드하면 차단 맵, 로그, 차단 기록, 지리적 위치 차단, 사용자 정의 규칙, 사용자 정의 차단 페이지 등의 기능을 제공받을 수 있습니다.',
        tamper: '전문 버전으로 업그레이드하면 웹사이트를 무단 수정이나 변조로부터 보호할 수 있습니다.',
        setting: '전문 버전으로 업그레이드하면 패널 로고, 환영 메시지 등 정보를 사용자 정의할 수 있습니다.',
        monitor:
            '전문 버전으로 업그레이드하면 웹사이트의 실시간 상태, 방문자 트렌드, 방문자 출처, 요청 로그 등 정보를 확인할 수 있습니다.',
        alert: '전문 버전으로 업그레이드하면 SMS 를 통해 알림 정보를 받고 알림 로그를 볼 수 있으며, 다양한 주요 이벤트를 완벽하게 제어하여 시스템 운영을 걱정 없이 유지할 수 있습니다.',
        app: '전문 버전으로 업그레이드하면 모바일 앱을 통해 서버를 관리하고 모니터링 기능을 확인할 수 있습니다.',
    },
    clean: {
        scan: '스캔 시작',
        scanHelper: '1Panel 실행 중에 생성된 불필요한 파일을 쉽게 정리합니다.',
        clean: '지금 정리',
        reScan: '다시 스캔',
        cleanHelper: '선택한 시스템 불필요 파일을 정리합니다. 이 작업은 되돌릴 수 없습니다. 계속 하시겠습니까?',
        statusSuggest: '(권장 정리)',
        statusClean: '(매우 깨끗함)',
        statusEmpty: '매우 깨끗합니다. 정리가 필요하지 않습니다!',
        statusWarning: '(주의하여 진행)',
        lastCleanTime: '마지막 정리 시간: {0}',
        lastCleanHelper: '정리된 파일 및 디렉터리: {0}, 총 정리된 크기: {1}',
        cleanSuccessful: '정리 성공',
        currentCleanHelper: '이번 세션에서 정리된 파일 및 디렉터리: {0}, 총 정리된 크기: {1}',
        suggest: '(권장)',
        totalScan: '정리해야 할 총 불필요 파일: ',
        selectScan: '선택된 불필요 파일 총합: ',

        system: '시스템 불필요 파일',
        systemHelper: '스냅샷, 업그레이드 중에 생성된 임시 파일과 버전 업데이트 중에 불필요해진 파일 내용',
        panelOriginal: '시스템 스냅샷 복구 백업 파일',
        upgrade: '시스템 업그레이드 백업 파일',
        upgradeHelper: '(시스템 롤백을 위해 최신 업그레이드 백업을 유지하는 것이 좋습니다)',
        cache: '시스템 캐시 파일',
        cacheHelper: '(주의하여 진행, 정리 후 서비스 재시작 필요)',
        snapshotTmp: '시스템 스냅샷 업로드 임시 파일',
        snapshotLocal: '시스템 스냅샷 생성 임시 파일',
        rollback: '복구 전 백업 파일',
        unused: '사용되지 않는 시스템 디렉터리',
        oldUpgrade: '사용되지 않는 구버전 업그레이드 백업 디렉터리',
        oldOriginal: '사용되지 않는 구버전 스냅샷 복구 백업 디렉터리',
        oldAppsBak: '사용되지 않는 애플리케이션 백업 디렉터리',

        upload: '임시 업로드 파일',
        uploadHelper: '시스템 백업 리스트에서 업로드된 임시 파일',
        download: '임시 다운로드 파일',
        downloadHelper: '시스템에서 제3자 백업 계정으로 다운로드된 임시 파일',
        website: '웹사이트',
        app: '애플리케이션',
        database: '데이터베이스',
        directory: '디렉터리',

        systemLog: '시스템 로그 파일',
        systemLogHelper: '시스템 로그 정보, 컨테이너 빌드 또는 이미지 풀 로그 정보, 예약된 작업에서 생성된 로그 파일',
        dockerLog: '컨테이너 운영 로그 파일',
        taskLog: '예약된 작업 실행 로그 파일',
        containerShell: '컨테이너 내 쉘 스크립트 예약 작업',

        containerTrash: '컨테이너 휴지통',
        images: '이미지',
        containers: '컨테이너',
        volumes: '볼륨',
        buildCache: '컨테이너 빌드 캐시',
    },
    app: {
        app: '애플리케이션 | 애플리케이션들',
        installName: '이름',
        installed: '설치됨',
        all: '모두',
        version: '버전',
        detail: '세부사항',
        params: '편집',
        install: '설치',
        author: '저자',
        source: '출처',
        sync: '동기화',
        appName: '애플리케이션 이름',
        status: '상태',
        container: '컨테이너',
        restart: '재시작',
        start: '시작',
        stop: '중지',
        rebuild: '재빌드',
        description: '설명',
        deleteWarn:
            '삭제 작업은 모든 데이터와 백업을 함께 삭제합니다. 이 작업은 되돌릴 수 없습니다. 계속 하시겠습니까?',
        syncSuccess: '동기화 성공',
        canUpgrade: '업데이트',
        backupName: '파일 이름',
        backupPath: '파일 경로',
        backupdate: '백업 시간',
        update: '업데이트',
        versionSelect: '버전을 선택하세요',
        operatorHelper: '선택한 애플리케이션에 대해 {0} 작업이 수행됩니다. 계속 하시겠습니까?',
        startOperatorHelper: '애플리케이션이 시작됩니다. 계속 하시겠습니까?',
        stopOperatorHelper: '애플리케이션이 중지됩니다. 계속 하시겠습니까?',
        restartOperatorHelper: '애플리케이션이 재시작됩니다. 계속 하시겠습니까?',
        reloadOperatorHelper: '애플리케이션이 다시 로드됩니다. 계속 하시겠습니까?',
        checkInstalledWarn: '"{0}"이(가) 감지되지 않았습니다. "앱 스토어"로 가서 설치하세요.',
        gotoInstalled: '설치하러 가기',
        search: '검색',
        limitHelper: '애플리케이션은 이미 설치되었습니다.',
        deleteHelper: '"{0}"은(는) 다음 리소스와 연결되어 있습니다. 확인 후 다시 시도하세요!',
        checkTitle: '힌트',
        website: '웹사이트',
        database: '데이터베이스',
        defaultConfig: '기본 설정',
        defaultConfigHelper: '기본 설정으로 복원되었습니다. 저장 후 적용됩니다.',
        forceDelete: '강제 삭제',
        forceDeleteHelper: '강제 삭제는 삭제 과정 중 오류를 무시하고 메타데이터를 삭제합니다.',
        deleteBackup: '백업 삭제',
        deleteBackupHelper: '애플리케이션 백업도 삭제됩니다.',
        deleteDB: '데이터베이스 삭제',
        deleteDBHelper: '데이터베이스도 삭제됩니다.',
        noService: '{0} 없음',
        toInstall: '설치하러 가기',
        param: '파라미터',
        alreadyRun: '나이',
        syncAppList: '동기화',
        less1Minute: '1분 미만',
        appOfficeWebsite: '오피스 웹사이트',
        github: 'GitHub',
        document: '문서',
        updatePrompt: '업데이트가 없습니다.',
        installPrompt: '아직 설치된 앱이 없습니다.',
        updateHelper: '파라미터를 수정하면 애플리케이션이 시작되지 않을 수 있습니다. 주의하세요.',
        updateWarn: '업데이트 파라미터는 애플리케이션을 재빌드해야 합니다. 계속 하시겠습니까?',
        busPort: '포트',
        syncStart: '동기화 시작! 나중에 앱 스토어를 새로고침 해주세요.',
        advanced: '고급 설정',
        cpuCore: '코어',
        containerName: '컨테이너 이름',
        containerNameHelper: '설정되지 않으면 컨테이너 이름이 자동으로 생성됩니다.',
        allowPort: '외부 접근 허용',
        allowPortHelper: '외부 포트 접근을 허용하면 방화벽 포트가 열립니다.',
        appInstallWarn:
            '애플리케이션은 기본적으로 외부 접근 포트를 노출하지 않습니다. "고급 설정"을 클릭하여 노출할 수 있습니다.',
        upgradeStart: '업그레이드 시작! 나중에 페이지를 새로고침 해주세요.',
        toFolder: '설치 디렉터리 열기',
        editCompose: 'Compose 파일 편집',
        editComposeHelper: 'Compose 파일을 편집하면 소프트웨어 설치가 실패할 수 있습니다.',
        composeNullErr: 'Compose는 비어 있을 수 없습니다.',
        takeDown: '내리기',
        allReadyInstalled: '설치됨',
        installHelper: '이미지 풀 문제 시 이미지 가속을 구성하세요.',
        upgradeHelper:
            '업그레이드 전에 비정상적인 애플리케이션을 정상 상태로 복원하세요. 업그레이드 실패 시 "로그 > 시스템 로그"에서 실패 원인을 확인하세요.',
        installWarn:
            '외부 접근이 활성화되지 않아 애플리케이션이 외부 네트워크에서 접근할 수 없습니다. 계속 하시겠습니까?',
        showIgnore: '무시된 애플리케이션 보기',
        cancelIgnore: '무시 취소',
        ignoreList: '무시된 애플리케이션',
        appHelper: '특수 애플리케이션 설치 지침을 보려면 애플리케이션 상세 페이지로 이동하세요.',
        backupApp: '업그레이드 전 애플리케이션 백업',
        backupAppHelper:
            '업그레이드 실패 시 백업이 자동으로 롤백됩니다. 로그 감사 시스템 로그에서 실패 원인을 확인하세요. 백업은 기본적으로 최신 3개 복사본을 유지합니다.',
        delete: '삭제',
        openrestyDeleteHelper: 'OpenResty 강제 삭제는 모든 웹사이트를 삭제합니다. 계속 하시겠습니까?',
        downloadLogHelper1: '{0} 애플리케이션의 모든 로그가 다운로드됩니다. 계속 하시겠습니까?',
        downloadLogHelper2: '{0} 애플리케이션의 최신 {1} 로그가 다운로드됩니다. 계속 하시겠습니까?',
        syncAllAppHelper: '모든 애플리케이션이 동기화됩니다. 계속 하시겠습니까?',
        hostModeHelper:
            '현재 애플리케이션 네트워크 모드는 호스트 모드입니다. 포트를 열어야 할 경우 방화벽 페이지에서 수동으로 열어주세요.',
        showLocal: '로컬 애플리케이션 보기',
        reload: '새로고침',
        upgradeWarn:
            '애플리케이션 업그레이드는 docker-compose.yml 파일을 교체합니다. 변경 사항이 있으면 파일 비교를 클릭하여 확인할 수 있습니다.',
        newVersion: '새 버전',
        oldVersion: '현재 버전',
        composeDiff: '파일 비교',
        showDiff: '비교 보기',
        useNew: '사용자 정의 버전 사용',
        useDefault: '기본 버전 사용',
        useCustom: '사용자 정의 docker-compose.yml 사용',
        useCustomHelper:
            '사용자 정의 docker-compose.yml 파일을 사용하면 애플리케이션 업그레이드가 실패할 수 있습니다. 필요하지 않으면 체크하지 마세요.',
        diffHelper: '왼쪽은 이전 버전, 오른쪽은 새 버전입니다. 편집 후 사용자 정의 버전을 저장하려면 클릭하세요.',
        pullImage: '이미지 풀',
        pullImageHelper: '애플리케이션 시작 전에 docker pull 을 실행하여 이미지를 다운로드하세요.',
        gpuConfig: 'GPU 가속',
        gpuConfigHelper: '서버에 NVIDIA 드라이버와 NVIDIA Container Toolkit이 설치되어 있는지 확인하십시오',
    },
    website: {
        website: '웹사이트 | 웹사이트들',
        primaryDomain: '기본 도메인',
        otherDomains: '기타 도메인',
        static: '정적',
        deployment: '배포',
        supportUpType: '지원되는 파일 형식: .tar.gz',
        zipFormat: '.tar.gz 압축 패키지 구조: test.tar.gz 패키지에는 반드시 {0} 파일이 포함되어야 합니다.',
        proxy: '리버스 프록시',
        alias: '별칭',
        enableFtp: 'FTP 활성화',
        ftpUser: 'FTP 계정',
        ftpPassword: 'FTP 비밀번호',
        ftpHelper: '웹사이트를 생성하면 해당 FTP 계정이 생성되고 FTP 디렉터리는 웹사이트 디렉터리와 연결됩니다.',
        remark: '비고',
        group: '그룹',
        manageGroup: '그룹 관리',
        groupSetting: '그룹 설정',
        createGroup: '그룹 생성',
        app: '애플리케이션',
        appNew: '새로운 애플리케이션',
        appInstalled: '설치된 애플리케이션',
        create: '생성',
        delete: '웹사이트 삭제',
        deleteApp: '애플리케이션 삭제',
        deleteBackup: '백업 삭제',
        domain: '도메인',
        domainHelper: "한 줄에 하나의 도메인.\n와일드카드 '*'와 IP 주소를 지원합니다.\n포트 추가를 지원합니다.",
        addDomain: '추가',
        domainConfig: '도메인 설정',
        defaultDoc: '기본 문서',
        perserver: '동시 연결',
        perserverHelper: '현재 사이트의 최대 동시 연결 수를 제한합니다.',
        perip: '단일 IP',
        peripHelper: '단일 IP의 최대 동시 접속 수를 제한합니다.',
        rate: '트래픽 제한',
        rateHelper: '요청당 트래픽을 제한합니다 (단위: KB)',
        limitHelper: '트래픽 제어 활성화',
        other: '기타',
        currentSSL: '현재 인증서',
        dnsAccount: 'DNS 계정',
        applySSL: '인증서 신청',
        SSLList: '인증서 목록',
        createDnsAccount: 'DNS 계정 생성',
        aliyun: '알리윤',
        volcengine: '볼크엔진',
        manual: '수동 설정',
        key: '키',
        check: '보기',
        acmeAccountManage: 'ACME 계정 관리',
        email: '이메일',
        acmeAccount: 'ACME 계정',
        provider: '검증 방법',
        dnsManual: '수동 설정',
        expireDate: '만료일',
        brand: '기관',
        deploySSL: '배포',
        deploySSLHelper: '인증서를 배포하시겠습니까?',
        ssl: '인증서 | 인증서들',
        dnsAccountManage: 'DNS 제공자 관리',
        renewSSL: '갱신',
        renewHelper: '인증서를 갱신하시겠습니까?',
        renewSuccess: '인증서 갱신 성공',
        config: '편집',
        enableHTTPS: 'HTTPS 활성화',
        aliasHelper: '별칭은 웹사이트의 디렉터리 이름입니다.',
        lastBackupAt: '마지막 백업 시간',
        null: '없음',
        nginxConfig: 'Nginx 설정',
        websiteConfig: '웹사이트 설정',
        basic: '기본',
        source: '구성',
        security: '보안',
        log: '로그',
        nginxPer: '성능 튜닝',
        neverExpire: '만료 없음',
        setDefault: '기본값으로 설정',
        default: '기본값',
        deleteHelper: '관련 애플리케이션 상태가 비정상입니다. 확인해 주세요.',
        toApp: '설치된 목록으로 이동',
        cycle: '주기',
        frequency: '빈도',
        ccHelper: '{0}초 내에 동일한 URL을 {1}회 이상 누적 요청하면 CC 방어가 발동되며, 해당 IP가 차단됩니다.',
        mustSave: '변경 사항은 저장해야 적용됩니다.',
        fileExt: '파일 확장자',
        fileExtBlock: '파일 확장자 차단 목록',
        value: '값',
        enable: '활성화',
        proxyAddress: '프록시 주소',
        proxyHelper: '예: 127.0.0.1:8080',
        forceDelete: '강제 삭제',
        forceDeleteHelper: '강제 삭제는 삭제 과정에서 발생하는 오류를 무시하고 최종적으로 메타데이터를 삭제합니다.',
        deleteAppHelper: '관련 애플리케이션 및 애플리케이션 백업을 동시에 삭제합니다.',
        deleteBackupHelper: '웹사이트 백업도 삭제합니다.',
        deleteConfirmHelper:
            '삭제 작업은 되돌릴 수 없습니다. 확인하려면 <span style=\'color:red\'>"{0}"</span>을(를) 입력하세요.',
        staticPath: '해당 주요 디렉터리는',
        limit: '제한',
        blog: '포럼/블로그',
        imageSite: '이미지 사이트',
        downloadSite: '다운로드 사이트',
        shopSite: '쇼핑몰',
        doorSite: '포털',
        qiteSite: '기업',
        videoSite: '비디오',
        errLog: '오류 로그',
        accessLog: '웹사이트 로그',
        stopHelper:
            '사이트를 중지하면 정상적으로 액세스할 수 없으며, 사용자가 해당 사이트의 중지 페이지를 보게 됩니다. 계속하시겠습니까?',
        startHelper: '사이트를 활성화하면 사용자가 정상적으로 사이트 내용을 액세스할 수 있습니다. 계속하시겠습니까?',
        sitePath: '디렉터리',
        siteAlias: '사이트 별칭',
        primaryPath: '루트 디렉터리',
        folderTitle: '웹사이트는 다음과 같은 폴더를 포함합니다.',
        wafFolder: '방화벽 규칙',
        indexFolder: '웹사이트 루트 디렉터리',
        logFolder: '웹사이트 로그',
        sslFolder: '웹사이트 인증서',
        enableOrNot: '활성화 여부',
        oldSSL: '기존 인증서',
        manualSSL: '인증서 가져오기',
        select: '선택',
        selectSSL: '인증서 선택',
        privateKey: '키(KEY)',
        certificate: '인증서(PEM 형식)',
        HTTPConfig: 'HTTP 옵션',
        HTTPSOnly: 'HTTP 요청 차단',
        HTTPToHTTPS: 'HTTPS로 리디렉션',
        HTTPAlso: 'HTTP 요청 허용',
        sslConfig: 'SSL 옵션',
        disableHTTPS: 'HTTPS 비활성화',
        disableHTTPSHelper: 'HTTPS 비활성화는 인증서 관련 구성을 삭제합니다. 계속하시겠습니까?',
        SSLHelper:
            '주의: 불법 웹사이트에는 SSL 인증서를 사용하지 마세요.\nHTTPS 액세스가 안 되는 경우 보안 그룹에서 443 포트를 올바르게 해제했는지 확인하세요.',
        SSLConfig: '인증서 설정',
        SSLProConfig: '프로토콜 설정',
        supportProtocol: '프로토콜 버전',
        encryptionAlgorithm: '암호화 알고리즘',
        notSecurity: '(안전하지 않음)',
        encryptHelper:
            "Let's Encrypt 는 인증서 발급에 빈도 제한이 있지만 일반적인 요구 사항을 충족하기에 충분합니다. 너무 자주 작업하면 발급 실패가 발생할 수 있습니다. 자세한 제한 사항은 <a target='_blank' href='https://letsencrypt.org/zh-cn/docs /rate-limits/'>공식 문서</a>를 참조하세요.",
        ipValue: '값',
        ext: '파일 확장자',
        wafInputHelper: '줄 단위로 데이터 입력, 한 줄에 하나씩',
        data: '데이터',
        ever: '영구',
        nextYear: '1년 후',
        noLog: '로그를 찾을 수 없습니다.',
        defaultServer: '기본 사이트',
        noDefaultServer: '설정되지 않음',
        defaultServerHelper:
            '기본 사이트를 설정하면 모든 미연결 도메인 이름 및 IP가 기본 사이트로 연결됩니다.\n이를 통해 악의적인 분석을 효과적으로 방지할 수 있습니다.',
        restoreHelper: '이 백업을 사용하여 복원하시겠습니까?',
        websiteDeploymentHelper: '설치된 애플리케이션을 사용하거나 새 애플리케이션을 생성하여 웹사이트를 만드세요.',
        websiteStatictHelper: '호스트에 웹사이트 디렉터리를 생성합니다.',
        websiteProxyHelper:
            '리버스 프록시를 사용하여 기존 서비스를 프록시합니다. 예를 들어, 포트 8080 에서 실행 중인 서비스를 프록시하려면 프록시 주소는 "http://127.0.0.1:8080"이 됩니다.',
        runtimeProxyHelper: '웹사이트 런타임을 사용하여 웹사이트를 만드세요.',
        runtime: '런타임',
        deleteRuntimeHelper: '런타임 애플리케이션은 웹사이트와 함께 삭제해야 하므로 신중하게 처리하세요.',
        proxyType: '네트워크 유형',
        unix: '유닉스 네트워크',
        tcp: 'TCP/IP 네트워크',
        phpFPM: 'FPM 구성',
        phpConfig: 'PHP 구성',
        updateConfig: '구성 업데이트',
        isOn: '켜짐',
        isOff: '꺼짐',
        rewrite: '의사 정적',
        rewriteMode: '방식',
        current: '현재',
        rewriteHelper: '의사 정적 설정으로 인해 웹사이트에 접근할 수 없게 되면 기본 설정으로 되돌려보세요.',
        runDir: '실행 디렉터리',
        runUserHelper:
            'PHP 컨테이너 런타임 환경에서 배포된 웹사이트의 경우, 인덱스 및 하위 디렉터리 아래의 모든 파일 및 폴더의 소유자와 사용자 그룹을 1000으로 설정해야 합니다. 로컬 PHP 환경의 경우, 로컬 PHP-FPM 사용자 및 사용자 그룹 설정을 참조하세요.',
        userGroup: '사용자/그룹',
        uGroup: '그룹',
        proxyPath: '프록시 경로',
        proxyPass: '대상 URL',
        cache: '캐시',
        cacheTime: '캐시 지속 시간',
        enableCache: '캐시 활성화',
        proxyHost: '프록시 호스트',
        disabled: '중지됨',
        startProxy: '리버스 프록시를 시작합니다. 계속하시겠습니까?',
        stopProxy: '리버스 프록시를 중지합니다. 계속하시겠습니까?',
        sourceFile: '소스',
        proxyHelper1: '이 디렉터리에 접근할 때 대상 URL 의 내용이 반환되고 표시됩니다.',
        proxyPassHelper: '대상 URL 은 유효하고 접근 가능해야 합니다.',
        proxyHostHelper: '요청 헤더에 있는 도메인 이름을 프록시 서버로 전달합니다.',
        replacementHelper: '최대 5개의 교체를 추가할 수 있으며, 교체가 필요하지 않은 경우 비워두세요.',
        modifier: '매칭 규칙',
        modifierHelper: '예: = 는 정확히 일치, ~ 는 정규식 일치, ^~ 는 경로 시작 부분 일치 등을 나타냅니다.',
        replace: '텍스트 교체',
        addReplace: '추가',
        replaced: '검색 문자열 (비울 수 없음)',
        replaceText: '교체할 문자열',
        replacedErr: '검색 문자열은 비워둘 수 없습니다',
        replacedErr2: '검색 문자열은 중복될 수 없습니다',
        basicAuth: '기본 인증',
        editBasicAuthHelper:
            '비밀번호는 비대칭으로 암호화되어 표시할 수 없습니다. 수정하려면 비밀번호를 재설정해야 합니다.',
        antiLeech: '링크 차단',
        extends: '확장',
        browserCache: '캐시',
        leechLog: '링크 차단 로그 기록',
        accessDomain: '허용된 도메인',
        leechReturn: '응답 리소스',
        noneRef: '빈 참조 허용',
        disable: '비활성화',
        disableLeechHelper: '링크 차단을 비활성화할지 여부',
        disableLeech: '링크 차단 비활성화',
        ipv6: 'IPv6 수신 대기',
        leechReturnError: 'HTTP 상태 코드를 입력하세요',
        selectAcme: 'Acme 계정 선택',
        imported: '수동으로 생성됨',
        importType: '가져오기 유형',
        pasteSSL: '코드 붙여넣기',
        localSSL: '서버 파일 선택',
        privateKeyPath: '개인 키 파일',
        certificatePath: '인증서 파일',
        ipWhiteListHelper: 'IP 허용 목록의 역할: 모든 규칙이 IP 허용 목록에 대해 무효화됩니다.',
        redirect: '리디렉션',
        sourceDomain: '소스 도메인',
        targetURL: '대상 URL 주소',
        keepPath: 'URI 매개변수',
        path: '경로',
        redirectType: '리디렉션 유형',
        redirectWay: '방식',
        keep: '유지',
        notKeep: '유지하지 않음',
        redirectRoot: '홈페이지로 리디렉션',
        redirectHelper: '301 영구 리디렉션, 302 임시 리디렉션',
        changePHPVersionWarn:
            'PHP 버전을 변경하면 기존 PHP 컨테이너가 삭제됩니다 (마운트된 웹사이트 코드는 손실되지 않습니다). 계속하시겠습니까?',
        changeVersion: '버전 전환',
        retainConfig: 'php-fpm.conf 및 php.ini 파일을 유지할지 여부',
        runDirHelper2: '보조 실행 디렉터리가 인덱스 디렉터리 아래에 있는지 확인하세요.',
        openrestyHelper:
            'OpenResty 기본 HTTP 포트: {0}, HTTPS 포트: {1}, 이는 웹사이트 도메인 접속 및 HTTPS 강제 리디렉션에 영향을 미칠 수 있습니다.',
        primaryDomainHelper: '예: example.com 또는 example.com:8080',
        acmeAccountType: '계정 유형',
        keyType: '키 알고리즘',
        tencentCloud: '텐센트 클라우드',
        containWarn: '도메인 이름에 메인 도메인이 포함되어 있습니다. 다시 입력하세요.',
        rewriteHelper2:
            '앱 스토어에서 설치된 WordPress 와 같은 응용 프로그램은 일반적으로 사전 설정된 가상 정적 구성이 포함됩니다. 이를 재구성하면 오류가 발생할 수 있습니다.',
        websiteBackupWarn:
            '로컬 백업 가져오기만 지원합니다. 다른 기기에서 가져온 백업은 복구 실패를 초래할 수 있습니다.',
        ipWebsiteWarn:
            'IP를 도메인 이름으로 사용하는 웹사이트는 정상적으로 접속되기 위해 기본 사이트로 설정해야 합니다.',
        hstsHelper: 'HSTS 를 활성화하면 웹사이트 보안을 강화할 수 있습니다.',
        defaultHtml: '기본 페이지',
        website404: '웹사이트 404 오류 페이지',
        domain404: '웹사이트 도메인이 존재하지 않습니다.',
        indexHtml: '정적 웹사이트 인덱스',
        stopHtml: '중지된 웹사이트',
        indexPHP: 'PHP 웹사이트 인덱스',
        sslExpireDate: '인증서 만료 날짜',
        website404Helper: '웹사이트 404 오류 페이지는 PHP 실행 환경 웹사이트 및 정적 웹사이트만 지원합니다.',
        sni: '원본 SNI',
        sniHelper:
            '역방향 프록시 백엔드가 HTTPS 인 경우 원본 SNI 를 설정해야 할 수 있습니다. 자세한 내용은 CDN 서비스 제공자의 문서를 참조하세요.',
        huaweicloud: '화웨이 클라우드',
        rainyun: '레인윤',
        westCN: 'West CN',
    },
    php: {
        short_open_tag: '짧은 태그 지원',
        max_execution_time: '최대 스크립트 실행 시간',
        max_input_time: '최대 입력 시간',
        memory_limit: '스크립트 메모리 제한',
        post_max_size: 'POST 데이터 최대 크기',
        file_uploads: '파일 업로드 허용 여부',
        upload_max_filesize: '업로드 가능한 파일의 최대 크기',
        max_file_uploads: '한 번에 업로드 가능한 파일의 최대 개수',
        default_socket_timeout: '소켓 타임아웃',
        error_reporting: '에러 수준',
        display_errors: '상세한 에러 정보 출력 여부',
        cgi_fix_pathinfo: 'pathinfo 활성화 여부',
        date_timezone: '시간대',
        disableFunction: '비활성화 함수',
        disableFunctionHelper: '비활성화할 함수를 입력하세요. 예: exec, 여러 항목은 쉼표로 구분',
        uploadMaxSize: '업로드 제한',
        indexHelper: 'PHP 웹사이트의 정상 작동을 위해 코드를 인덱스 디렉터리에 배치하고 이름 변경을 피하세요.',
        extensions: '확장 템플릿',
        extension: '확장',
        extensionHelper: '여러 확장은 쉼표로 구분하여 입력하세요.',
        toExtensionsList: '확장 목록 보기',
    },
    nginx: {
        serverNamesHashBucketSizeHelper: '서버 이름의 해시 테이블 크기',
        clientHeaderBufferSizeHelper: '클라이언트가 요청한 헤더 버퍼 크기',
        clientMaxBodySizeHelper: '최대 업로드 파일 크기',
        keepaliveTimeoutHelper: '연결 시간 초과',
        gzipMinLengthHelper: '최소 압축 파일 크기',
        gzipCompLevelHelper: '압축률',
        gzipHelper: '전송을 위한 압축 활성화',
        connections: '활성 연결',
        accepts: '수락',
        handled: '처리됨',
        requests: '요청',
        reading: '읽기 중',
        writing: '쓰기 중',
        waiting: '대기 중',
        status: '현재 상태',
        nginxConfig: '설정',
        configResource: '구성',
        saveAndReload: '저장 및 다시 로드',
        clearProxyCache: '리버스 프록시 캐시 삭제',
        clearProxyCacheWarn:
            '캐시가 구성된 모든 웹사이트에 영향을 미치며 OpenResty 가 다시 시작됩니다. 계속하시겠습니까?',
    },
    ssl: {
        create: '요청',
        provider: '유형',
        manualCreate: '수동 생성됨',
        acmeAccount: 'ACME 계정',
        resolveDomain: '도메인 이름 확인',
        err: '오류',
        value: '레코드 값',
        dnsResolveHelper: 'DNS 해석 서비스 제공업체에서 다음 해석 레코드를 추가하세요:',
        detail: '세부 정보',
        msg: '정보',
        ssl: '인증서',
        key: '개인 키',
        startDate: '유효 시작 시간',
        organization: '발급 기관',
        renewConfirm: '도메인 이름 {0}에 대해 새 인증서를 갱신합니다. 계속하시겠습니까?',
        autoRenew: '자동 갱신',
        autoRenewHelper: '만료 30일 전에 자동으로 갱신',
        renewSuccess: '갱신 성공',
        renewWebsite: '이 인증서는 다음 웹사이트에 연결되었으며, 적용은 이러한 웹사이트에 동시에 적용됩니다.',
        createAcme: '계정 생성',
        acmeHelper: 'Acme 계정은 무료 인증서를 신청하는 데 사용됩니다.',
        upload: '가져오기',
        applyType: '유형',
        apply: '갱신',
        applyStart: '인증서 신청 시작',
        getDnsResolve: 'DNS 해석 값을 가져오는 중입니다. 잠시 기다려주세요...',
        selfSigned: '자체 서명된 CA',
        ca: '인증 기관',
        commonName: '공통 이름',
        caName: '인증 기관 이름',
        company: '기관 이름',
        department: '조직 단위 이름',
        city: '지역 이름',
        province: '주 또는 지방 이름',
        country: '국가 이름 (2자리 코드)',
        commonNameHelper: '예를 들어, ',
        selfSign: '인증서 발급',
        days: '유효 기간',
        domainHelper: '줄당 하나의 도메인 이름, * 및 IP 주소 지원',
        pushDir: '로컬 디렉토리로 인증서 푸시',
        dir: '디렉토리',
        pushDirHelper: '인증서 파일 "fullchain.pem" 및 키 파일 "privkey.pem"이 이 디렉토리에 생성됩니다.',
        organizationDetail: '조직 세부 정보',
        fromWebsite: '웹사이트에서 가져오기',
        dnsMauanlHelper: '수동 해석 모드에서는 생성 후 신청 버튼을 클릭하여 DNS 해석 값을 얻어야 합니다.',
        httpHelper: 'HTTP 모드는 OpenResty 설치가 필요합니다.',
        buypassHelper: 'Buypass 는 중국 본토에서 접근할 수 없습니다.',
        googleHelper: 'EAB HmacKey 및 EAB kid 를 얻는 방법',
        googleCloudHelper: 'Google Cloud API 는 중국 본토 대부분에서 접근할 수 없습니다.',
        httpHelper2: 'HTTP 모드에서 일반 도메인 이름 인증서를 신청할 수 없습니다.',
        skipDNSCheck: 'DNS 확인 건너뛰기',
        skipDNSCheckHelper: '인증 요청 중 타임아웃 문제가 발생할 경우에만 선택하세요.',
        cfHelper: 'Global API Key 를 사용하지 마세요.',
        deprecated: '더 이상 지원되지 않습니다.',
        deprecatedHelper:
            '유지 관리가 중단되었으며 향후 버전에서 제외될 수 있습니다. Tencent Cloud 방법을 사용하여 분석하세요.',
        disableCNAME: 'CNAME 비활성화',
        disableCNAMEHelper: '도메인 이름에 CNAME 레코드가 있고 요청이 실패할 경우 선택하세요.',
        nameserver: 'DNS 서버',
        nameserverHelper: '사용자 지정 DNS 서버를 사용하여 도메인 이름을 확인합니다.',
        edit: '인증서 편집',
        execShell: '인증 요청 후 스크립트 실행',
        shell: '스크립트 내용',
        shellHelper:
            '스크립트의 기본 실행 디렉토리는 1Panel 설치 디렉토리입니다. 인증서가 로컬 디렉토리에 푸시되는 경우 실행 디렉토리는 인증서 푸시 디렉토리가 됩니다. 기본 실행 제한 시간은 30분입니다.',
    },
    firewall: {
        create: '규칙 만들기',
        edit: '규칙 수정',
        notSupport: '시스템 방화벽이 감지되지 않았습니다 (firewalld 또는 ufw). 설치 방법은 공식 문서를 참조하세요.',
        ccDeny: 'CC 보호',
        ipWhiteList: 'IP 허용 목록',
        ipBlockList: 'IP 차단 목록',
        fileExtBlockList: '파일 확장자 차단 목록',
        urlWhiteList: 'URL 허용 목록',
        urlBlockList: 'URL 차단 목록',
        argsCheck: 'GET 파라미터 검사',
        postCheck: 'POST 파라미터 검사',
        cookieBlockList: '쿠키 차단 목록',
        firewall: '방화벽',
        dockerHelper:
            '리눅스 방화벽 "{0}"은(는) Docker 포트 매핑을 비활성화할 수 없습니다. 애플리케이션은 "앱 스토어 -> 설치됨" 페이지에서 매핑 포트를 해제할 수 있는 파라미터를 수정해야 합니다.',
        quickJump: '빠른 접근',
        used: '사용됨',
        unUsed: '사용 안 함',
        firewallHelper: '{0} 시스템 방화벽',
        firewallNotStart: '현재 시스템 방화벽이 활성화되지 않았습니다. 먼저 활성화하세요.',
        restartFirewallHelper: '이 작업은 현재 방화벽을 재시작합니다. 계속하시겠습니까?',
        stopFirewallHelper: '이 작업은 서버 보안을 잃게 만듭니다. 계속하시겠습니까?',
        startFirewallHelper: '방화벽이 활성화되면 서버 보안이 강화됩니다. 계속하시겠습니까?',
        noPing: 'Ping 비활성화',
        noPingTitle: 'Ping 비활성화',
        noPingHelper: '이 작업은 Ping 을 비활성화하며 서버는 ICMP 응답을 보내지 않게 됩니다. 계속하시겠습니까?',
        onPingHelper: '이 작업은 Ping 을 활성화하여 해커가 서버를 발견할 수 있습니다. 계속하시겠습니까?',
        changeStrategy: '{0} 전략 변경',
        changeStrategyIPHelper1:
            'IP 주소 전략을 [거부]로 변경합니다. 설정 후 해당 IP 주소는 서버 접근이 차단됩니다. 계속하시겠습니까?',
        changeStrategyIPHelper2:
            'IP 주소 전략을 [허용]으로 변경합니다. 설정 후 해당 IP 주소는 정상적으로 접근할 수 있습니다. 계속하시겠습니까?',
        changeStrategyPortHelper1:
            '포트 정책을 [차단]으로 변경합니다. 설정 후 외부 접근이 차단됩니다. 계속하시겠습니까?',
        changeStrategyPortHelper2:
            '포트 정책을 [허용]으로 변경합니다. 설정 후 정상적으로 포트 접근이 복원됩니다. 계속하시겠습니까?',
        stop: '정지',
        portFormatError: '이 필드는 유효한 포트이어야 합니다.',
        portHelper1: '여러 포트, 예: 8080, 8081',
        portHelper2: '포트 범위, 예: 8080-8089',
        changeStrategyHelper:
            '[{1}] {0} 전략을 [{2}]로 변경합니다. 설정 후 {0}은(는) {2}로 외부 접근을 허용합니다. 계속하시겠습니까?',
        portHelper: '여러 포트를 입력할 수 있습니다. 예: 80, 81 또는 포트 범위, 예: 80-88',
        strategy: '전략',
        accept: '허용',
        drop: '차단',
        source: '소스',
        anyWhere: '어디든지',
        address: '지정된 IP',
        addressHelper: 'IP 주소 또는 IP 범위를 지원합니다.',
        allow: '허용',
        deny: '거부',
        addressFormatError: '이 필드는 유효한 IP 주소여야 합니다.',
        addressHelper1: "IP 주소 또는 IP 범위가 필요합니다. 예: '172.16.10.11' 또는 '172.16.10.0/24'.",
        addressHelper2: "여러 IP 주소는 쉼표로 구분합니다. 예: '172.16.10.11, 172.16.0.0/24'.",
        allIP: '모든 IP',
        portRule: '규칙 | 규칙들',
        createPortRule: '@:commons.button.create @.lower:firewall.portRule',
        forwardRule: '포트 전달 규칙 | 포트 전달 규칙들',
        createForwardRule: '@:commons.button.create @:firewall.forwardRule',
        ipRule: 'IP 규칙 | IP 규칙들',
        createIpRule: '@:commons.button.create @:firewall.ipRule',
        userAgent: 'User-Agent 필터',
        sourcePort: '소스 포트',
        targetIP: '대상 IP',
        targetPort: '대상 포트',
        forwardHelper1: "로컬 포트로 전달하려면, 대상 IP 를 '127.0.0.1'로 설정해야 합니다.",
        forwardHelper2: '대상 IP 를 비워두면 로컬 포트로 전달됩니다.',
        forwardHelper3: 'IPv4 포트 전달만 지원됩니다.',
    },
    runtime: {
        runtime: '실행 환경',
        image: '이미지',
        workDir: '작업 디렉토리',
        create: '실행 환경 생성',
        resource: '소스',
        appstore: '앱 스토어',
        local: '로컬',
        app: '애플리케이션',
        localHelper: '로컬 운영 환경은 직접 설치해야 합니다.',
        version: '버전',
        versionHelper: 'PHP 버전, 예: v8.0',
        buildHelper:
            '확장 기능을 많이 선택하면 이미지 생성 과정에서 CPU 사용량이 증가합니다. 모든 확장 기능을 선택하지 않도록 주의하세요.',
        openrestyWarn: 'PHP는 OpenResty 버전 1.21.4.1 이상으로 업그레이드해야 사용 가능합니다.',
        toupgrade: '업그레이드하기',
        edit: '실행 환경 수정',
        extendHelper:
            '필요한 확장 기능이 목록에 없으면 확장 이름을 수동으로 입력할 수 있습니다. 예: "sockets" 입력 후 첫 번째 항목 선택.',
        rebuildHelper: '확장 기능을 수정한 후에는 PHP 애플리케이션을 재빌드해야 적용됩니다.',
        rebuild: 'PHP 애플리케이션 재빌드',
        source: 'PHP 확장 소스',
        ustc: '중국과학기술대학',
        netease: '네티이즈',
        aliyun: '알리바바 클라우드',
        default: '기본',
        tsinghua: '칭화대학교',
        xtomhk: 'XTOM 미러 사이트 (홍콩)',
        xtom: 'XTOM 미러 사이트 (전 세계)',
        phpsourceHelper: '네트워크 환경에 맞는 적절한 소스를 선택하세요.',
        appPort: '앱 포트',
        externalPort: '외부 포트',
        packageManager: '패키지 관리자',
        codeDir: '코드 디렉터리',
        appPortHelper: '애플리케이션이 사용하는 포트.',
        externalPortHelper: '외부에 노출된 포트.',
        runScript: '실행 스크립트',
        runScriptHelper: '시작 명령 목록은 소스 디렉터리의 package.json 파일에서 분석됩니다.',
        open: '열기',
        close: '닫기',
        operatorHelper: '{0} 작업이 선택된 운영 환경에서 수행됩니다. 계속하시겠습니까?',
        statusHelper:
            '상태 설명: 시작 중 - 컨테이너가 시작되었으나 애플리케이션이 시작 중; 비정상 - 컨테이너가 시작되었으나 애플리케이션 상태가 비정상.',
        taobao: '타오바오',
        tencent: '텐센트',
        imageSource: '이미지 소스',
        moduleManager: '모듈 관리',
        module: '모듈',
        nodeOperatorHelper:
            '{0} {1} 모듈인가요? 이 작업은 운영 환경에 비정상을 일으킬 수 있으므로 진행 전에 확인해 주세요.',
        customScript: '사용자 정의 시작 명령',
        customScriptHelper: '전체 시작 명령을 제공하세요. 예: "npm run start".',
        portError: '포트를 중복 사용하지 마세요.',
        systemRestartHelper: '상태 설명: 중단 - 시스템 재시작으로 인해 상태 가져오기가 실패했습니다.',
        javaScriptHelper: '전체 시작 명령을 제공하세요. 예: "java -jar halo.jar -Xmx1024M -Xms256M".',
        javaDirHelper: '디렉터리는 jar 파일을 포함해야 하며, 하위 디렉터리도 허용됩니다.',
        goHelper: '전체 시작 명령을 제공하세요. 예: "go run main.go" 또는 "./main".',
        goDirHelper: '디렉터리 또는 하위 디렉터리는 Go 또는 바이너리 파일을 포함해야 합니다.',
        pythonHelper:
            '전체 시작 명령을 제공하세요. 예: "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:5000".',
        dotnetHelper: '전체 시작 명령을 제공하세요. 예: "dotnet MyWebApp.dll".',
    },
    process: {
        pid: '프로세스 ID',
        ppid: '부모 PID',
        numThreads: '스레드',
        memory: '메모리',
        diskRead: '디스크 읽기',
        diskWrite: '디스크 쓰기',
        netSent: '업링크',
        netRecv: '다운스트림',
        numConnections: '연결',
        startTime: '시작 시간',
        status: '상태',
        state: '상태',
        running: '실행 중',
        sleep: '대기 중',
        stop: '중지',
        idle: '유휴',
        zombie: '좀비 프로세스',
        wait: '대기',
        lock: '잠금',
        blocked: '차단됨',
        cmdLine: '시작 명령',
        basic: '기본',
        mem: '메모리',
        openFiles: '열린 파일',
        file: '파일',
        env: '환경 변수',
        noenv: '없음',
        net: '네트워크 연결',
        laddr: '출발지 주소/포트',
        raddr: '목적지 주소/포트',
        stopProcess: '종료',
        viewDetails: '세부 사항',
        stopProcessWarn: '이 프로세스(PID:{0})를 종료하시겠습니까?',
        processName: '프로세스 이름',
    },
    tool: {
        supervisor: {
            loadStatusErr: '프로세스 상태를 가져오지 못했습니다. supervisor 서비스의 상태를 확인하세요.',
            notSupport: `Supervisor 가 감지되지 않았습니다. 설치하려면 공식 문서를 참조하세요.`,
            list: '데몬 프로세스 | 데몬 프로세스들',
            config: 'Supervisor 설정',
            primaryConfig: '주 설정 파일 위치',
            notSupportCrl: `supervisorctl 이 감지되지 않았습니다. 설치하려면 공식 문서를 참조하세요.`,
            user: '사용자',
            command: '명령어',
            dir: '디렉토리',
            numprocs: '프로세스 수',
            initWarn:
                '이 작업은 주 설정 파일의 "[include]" 섹션에 있는 "files" 값을 수정합니다. 다른 설정 파일의 디렉토리는 "{1Panel 설치 디렉토리}/1panel/tools/supervisord/supervisor.d/"입니다.',
            operatorHelper: '{1} 작업을 {0}에서 수행합니다. 계속하시겠습니까?',
            uptime: '운영 시간',
            notStartWarn: `Supervisor 가 시작되지 않았습니다. 먼저 시작하세요.`,
            serviceName: '서비스 이름',
            initHelper: `Supervisor 서비스가 초기화되지 않았습니다. "초기화"를 클릭하여 초기화하세요.`,
            serviceNameHelper: 'systemctl 로 관리되는 Supervisor 서비스 이름, 보통 supervisor 또는 supervisord입니다.',
            restartHelper:
                '이 작업은 초기화 후 서비스를 재시작합니다. 이로 인해 기존의 모든 데몬 프로세스가 중지됩니다.',
            msg: '메시지',
            RUNNING: '실행 중',
            STOPPED: '중지됨',
            STOPPING: '중지 중',
            STARTING: '시작 중',
            FATAL: '시작 실패',
            BACKOFF: '시작 예외',
            ERROR: '오류',
            statusCode: '상태 코드',
            manage: '관리',
        },
    },
    alert: {
        isAlert: '알림',
        alertCount: '알림 횟수',
        clamHelper: '감염된 파일을 스캔할 때 SMS 알림 트리거',
        cronJobHelper: '작업 실행 실패 시 SMS 알림 트리거',
        licenseHelper: '전문 버전에서는 SMS 알림을 지원합니다.',
        alertCountHelper: '최대 일일 알림 빈도',
    },
    aitool: {
        proxy: 'AI 프록시 강화',
        proxyHelper1: '도메인을 바인딩하고 HTTPS를 활성화하여 전송 보안을 강화',
        proxyHelper2: 'IP 접근을 제한하여 공용 인터넷에서의 노출을 방지',
        proxyHelper3: '스트리밍을 활성화',
        proxyHelper4: '생성 후, 웹사이트 목록에서 이를 보고 관리할 수 있습니다',
        proxyHelper5:
            '활성화한 후, 앱 스토어 - 설치됨 - Ollama - 매개변수에서 포트 외부 접근을 비활성화하여 보안을 강화할 수 있습니다.',
        proxyHelper6: '프록시 구성을 비활성화하려면 웹사이트 목록에서 삭제할 수 있습니다.',
        whiteListHelper: '화이트리스트에 있는 IP만 접근 허용',
    },
    mcp: {
        server: 'MCP サーバー',
        create: 'サーバーを追加',
        edit: 'サーバーを編集',
        commandHelper: '例: npx -y {0}',
        baseUrl: '外部アクセスパス',
        baseUrlHelper: '例: http://192.168.1.2:8000',
        ssePath: 'SSE パス',
        ssePathHelper: '例: /sse, 他のサーバーと重複しないように注意してください',
        environment: '環境変数',
        envKey: '変数名',
        envValue: '変数値',
        externalUrl: '外部接続アドレス',
        operatorHelper: '{0} に {1} 操作を実行します、続行しますか？',
        domain: 'デフォルトアクセスアドレス',
        domainHelper: '例: 192.168.1.1 または example.com',
        bindDomain: 'ウェブサイトをバインド',
        commandPlaceHolder: '현재 npx 및 바이너리 시작 명령만 지원합니다',
        importMcpJson: 'MCP サーバー設定をインポート',
        importMcpJsonError: 'mcpServers 構造が正しくありません',
        bindDomainHelper:
            '웹사이트를 바인딩한 후, 설치된 모든 MCP 서버의 접근 주소를 수정하고 포트의 외부 접근을 닫습니다',
    },
};

export default {
    ...fit2cloudKoLocale,
    ...message,
    ...xpackKoLocale,
};
